Abfrage nicht vorhandene Einträge

Abfrage nicht vorhandene Einträge

am 06.06.2005 18:05:38 von alex_mx

Hallo NG!

Sitze hier gerade mächtigst auf dem Schlauch. Vielleicht kann mir da
jemand mal wieder runterhelfen ... ;-)

Habe 3 Tabellen: Produkte, Kategorien und Infotexte. Jedes Produkt darf
einen Infotext in jeder Kategorie haben. 5 Kategorien --> max. 5
Infotexte pro Produkt.

Jetzt möchte ich per Abfrage herausfinden, welche Kategorien bei einem
gegebenen Produkt noch nicht mit einem Infotext hinterlegt sind.

Hier die Tabellen zur besseren Übersicht:

Produkte (Info-)Kategorien Infotexte
----------- ------------ -----------
prod_id kat_id info_id
name name prod_id
text ... kat_id
preis text
... ...

Hat da jemand eine Idee, wie ich zu einer Auflistung der nicht
genutzten Kategorien pro Produkt komme?

Vielen Dank schon mal im voraus. Ich hoffe, ich habe mich verständlich
ausgedrückt.

Gruß


Alex

Re: Abfrage nicht vorhandene Einträge

am 06.06.2005 19:23:58 von Marian Heddesheimer

On 6 Jun 2005 09:05:38 -0700, alex_mx@gmx.net wrote:

>Sitze hier gerade mächtigst auf dem Schlauch. Vielleicht kann mir da
>jemand mal wieder runterhelfen ... ;-)

http://www.heddesheimer.de/coaching/left_join.html

Gruß

Marian


--
Online Lernen (auch fuer Blinde geeignet): HTML, PHP, MySQL, Word, Excel
http://www.lernpilot.de/wbt/

Re: Abfrage nicht vorhandene Einträge

am 06.06.2005 19:41:03 von alex_mx

Hmmm. Danke für den Link.

Habe auch die Left Join-Geschichte auch schon stundenlang
durchexerziert ...

select * from kategorien
left join infotexte
on kategorien.kat_id =3D infotexte.kat_id
where isnull(text)

Leider erhalte ich da immer nur eine leere Ergebnismenge. Irgendwas
stimmt da wohl nicht. Habe ich einen Denkfehler eingebaut?

Danke!

Re: Abfrage nicht vorhandene Einträge

am 06.06.2005 19:56:05 von Steffen Boehme

Versuchs doch mal mit einem:

SELECT
T1.kat_id
FROM
Kategorien AS T1
LEFT JOIN Infotexte AS T2 ON T1.kat_id = T2.kat_id AND T2.prod_id = 2
WHERE
T2.kat_id IS NULL

Dazu solltest du dir mal die Syntax-Beschreibung von Joins (insbesondere
Left Joins) anschauen ;-) ...
Vielleicht gibts auch noch nen hübscheren Weg, aber der fiel mir als
erstes ein ...

Gruß
Steffen

Ah, habe grade deinen Eintrag noch gesehen ...
Ich musste auch erst nochmal nachschauen um zu sehen, dass man auch zwei
Felder als Bedingung angeben kann ...

alex_mx@gmx.net schrieb:
> Hallo NG!
>
> Sitze hier gerade mächtigst auf dem Schlauch. Vielleicht kann mir da
> jemand mal wieder runterhelfen ... ;-)
>
> Habe 3 Tabellen: Produkte, Kategorien und Infotexte. Jedes Produkt darf
> einen Infotext in jeder Kategorie haben. 5 Kategorien --> max. 5
> Infotexte pro Produkt.
>
> Jetzt möchte ich per Abfrage herausfinden, welche Kategorien bei einem
> gegebenen Produkt noch nicht mit einem Infotext hinterlegt sind.
>
> Hier die Tabellen zur besseren Übersicht:
>
> Produkte (Info-)Kategorien Infotexte
> ----------- ------------ -----------
> prod_id kat_id info_id
> name name prod_id
> text ... kat_id
> preis text
> ... ...
>
> Hat da jemand eine Idee, wie ich zu einer Auflistung der nicht
> genutzten Kategorien pro Produkt komme?
>
> Vielen Dank schon mal im voraus. Ich hoffe, ich habe mich verständlich
> ausgedrückt.
>
> Gruß
>
>
> Alex
>

Re: Abfrage nicht vorhandene Einträge

am 06.06.2005 21:43:27 von alex_mx

Steffen: Ich danke Dir!

Du hast mir den Abend gerettet. Dachte zwar, dass ich auch diese
Möglichkeit in meinen hunderten Versuchen ;-) schon getestet hatte.
Jetzt funktionierts aber.

Dankeschön nochmal und nen schönen Abend.

Gruß

Alex