mySQL
Hallo, ich habe zwei Tabellen, die ich miteinander per SQL verknüpfe (Triggers und Triggers_Done).
Triggers ist die Kopftabelle mit ID verknüpft mit Triggers_Done (Trigger_ID).
Ich möchte nun alle Zeilen der Tabelle Triggers zurückgeliefert bekommen,
die KEINEN Eintrag mit einem Usernamen X in der Tabelle Triggers_Done haben.
Habe bisher das hier zusammengebastelt:
select t.*, d.* from triggers as t
left join
trigger_done d on t.OID = d.Trigger_ID
where d.Username = "123" AND d.Trigger_ID is null
Wenn ich nicht nafch d.Username eingrenze liefert mir das Statement tatsächlich alle Zeilen zurück, die sich nicht in Triggers_Done befinden - aber wie kann ich da zusätzlich nach dem Usernamen eingrenzen, da stehe ich irgendwie im Wald...
Danke !!!
Hallo,
hast Du es mal mit einer Unterabfrage probiert?
sowas?
select * from triggers where OID not in (select Trigger_ID from trigger_done WHERE Username = "123")
Meiner Meinung nach viel zu kompliziert gedacht. Bei nur 2 Tabellen musst Du keine "wilden" JOIN Konstrukte bauen. Das geht auch deutlich einfacher.
Hier ein Beispiel wie dein geschildertes Problem umgesetzt werden könnte.
SELECT *
FROM Triggers AS t, Triggers_Done AS d
WHERE t.OID = d.Trigger_ID AND NOT d.Username = '123'
Das würde dir aus beiden Tabellen alle verknüpften Datensätze zurück liefern deren Username in Triggers_Done nicht 123 ist.
Hallo,
@Talon:
SELECT *
FROM Triggers AS t, Triggers_Done AS d
WHERE t.OID = d.Trigger_ID AND NOT d.Username = '123'
er schrieb aber
Ich möchte nun alle Zeilen der Tabelle Triggers zurückgeliefert bekommen,
die KEINEN Eintrag mit einem Usernamen X in der Tabelle Triggers_Done haben.
Also eher
SELECT DISTINCT t.*
FROM Triggers AS t, Triggers_Done AS d
WHERE t.OID = d.Trigger_ID AND NOT d.Username = '123'
... oder er hat sich ungenau ausgedrückt.
Danke für eure Hilfe!
Der Schnipsel von steffen_dec war genau das was ich gesucht habe!
Er liefert mir alle Trigger für dieser Username zurück, die ich noch abarbeiten muss (und dann einen Satz in Triggers_Done schreibe).
Mir geht es also um Trigger, die ich auf versch. Clients abarbeiten will, dazu muss ich wissen, welche auf Client X noch offen sind 😉
Merci beaucoup !!!