Einträge ohne Zuordnung
skyposter
- datenbank
0 der-daniel0 Tom0 Tom
0 skyposter
Hi!
Ich habe zwei Tabellen, von denen eine den Einträgen der anderen Tags zuordnet.
Die einträge, die ein bestimmtes Tag haben bekomme ich problemlos:
SELECT a.id
FROM daten' AS a JOIN
tags AS b WHERE a.
id=b.
data AND b.
tag`="irgendwas"
Jetzt suche ich aber alle Einträge in data
, die KEINE Tags haben. Wie kann ich das abfregen?
Skyposter
Hi!
abend!
SELECT a.
id
FROMdaten' AS a JOIN
tagsAS b WHERE a.
id=b.
dataAND b.
tag="irgendwas" Jetzt suche ich aber alle Einträge in
data`, die KEINE Tags haben. Wie kann ich das abfregen?
einfach verneinen statt = einfach != oder tag
= '' ;)
lg,
der-daniel
Ich suche nicht die Einträge mit anderen Tags, sondern die Einträge, zu denen es garkeine zugehörigen Tags gibt.
Den SQL-String habe ich mehr zur Verdeutlichung des Aufbaus der Datenbank, als als Ansatz eingefügt.
Sky
lies alle ids der tabelle a aus, dann alle ids die einen tag haben.
(hast du ja beides schon)
so, dann bildest du einfach die schnittmenge und somit bleiben alle übrig, die keine tags haben...
hilfreich: arra_diff, array_intersect, ...
PHP-Referenz
dlg,
der-daniel
Hello,
Ich habe zwei Tabellen, von denen eine den Einträgen der anderen Tags zuordnet.
Die einträge, die ein bestimmtes Tag haben bekomme ich problemlos:SELECT a.
id
FROMdaten' AS a JOIN
tagsAS b WHERE a.
id=b.
dataAND b.
tag`="irgendwas"Jetzt suche ich aber alle Einträge in
data
, die KEINE Tags haben. Wie kann ich das abfregen?
Das kann man sich so vorstellen:
Man sucht zuerst die Datensätze, für die es Treffer gibt:
select * from TEST where TEST.ID_TEST = VORHANDEN.ID_TEST;
Das ergibt alle Paarungen von TEST und VORHANDEN, die zusammenpassen.
Und dann müsste man sagen, dass man gerade das Gegenteil davon haben will:
TEST ist meine Produkt-Datei...
select * from TEST
left join VORHANDEN on (TEST.ID_TEST = VORHANDEN.ID_TEST) where VORHANDEN.ID_VORHANDEN is NULL order by TEST.ID_TEST;
Der ursprüngliche Tipp stammte von Daniela Koller:
http://forum.de.selfhtml.org/archiv/2003/2/37323/#m204537
Ich weiß aber leider im Moment nicht, wie der beim Forumsumzug migriert wurde.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
der Vollständigkeit halber...
Der ursprüngliche Tipp stammte von Daniela Koller:>
http://forum.de.selfhtml.org/archiv/2003/2/37323/#m204537
Habe von Daniela schon lange nichts mehr gelesen.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Ich habe die Lösung gefunden:
SELECT a.id
FROM daten
AS a
LEFT JOIN tags
AS b ON a.id
= b.data
WHERE b.id
IS NULL
Skyposter