Hallo zusammen,
Folgende Abfrage auf einem MySQL 5:
SELECT A.TypeID, A.Name, B.TypeID AS TestOutput
FROM mytype A
LEFT JOIN constraint B ON B.TypeID = A.TypeID
GROUP BY A.TypeID
Ausgabe:
----------------------------------
TypeID Name TestOutput
1 Hallo1 NULL
2 Hallo2 NULL
10 Hallo10 10
20 Hallo20 20
30 Hallo30 30
Bei der TypeID 1 und 2 steht in der Spalte TestOutput NULL da diese IDs nicht in der Tabelle constraint vorkommen.
Ich wollte mal versuchen, ob es irgendwie geht das der Output ein "false" enthält, wenn es die TypeID in "constraint" nicht gibt und ein "true" wenn es sie gibt.
Wenn ich nun versuche in diese Abfrage ein "Case" einzubauen:
SELECT
A.TypeID, A.Name,B.TypeID AS TestOutput,
CASE
B.TypeID
WHEN NULL
THEN 'false'
ELSE 'true'
END AS CheckType
FROM
mytype A
LEFT JOIN
constraint B ON B.TypeID = A.TypeID
GROUP BY A.TypeID
Ich dachte man könnte hier vielleicht nach den NULL Werten Abfragen. Das klappt so aber nicht.
Auch mit COUNT und "Anzahl" klappt es so nicht, da es natürlich keine Spalte "Anzahl" gibt.
SELECT
A.TypeID, A.Name,COUNT(B.TypeID) AS Anzahl,
CASE
B.TypeID
WHEN 0
THEN 'false'
ELSE 'true'
END AS CheckType
FROM
mytype A
LEFT JOIN
constraint B ON B.TypeID = A.TypeID
GROUP BY A.TypeID
Ich kann natürlich gleich nur mit "Count" arbeiten ohne CASE und nur prüfen, ob es 0 gibt oder nicht. Mich interessiert es nur, ob und wie so etwas mit CASE machbar wäre
vielen Dank und viele Grüße
hawk