Hier sind meine Tabellen:Fall bei der Rückkehr null Reihe
T1:
ID
1
2
3
T2:
ID (fk) value
1 Apple
1 Chocolate
2 Carrot
2 Chocolate
3 Candy
3 Chocolate
In meiner Anfrage:
select t1.id,
case when (t2.a) like 'app%'
then 'Apple'
end as 'Fruits',
case when (t2.a) like 'car%'
then 'Carrot'
end as 'Veggies'
from t1, t2
where t1.id = t2.id
hier ist, wie meine Ausgabe lautet:
id Fruits Veggies
=====================
1 Apple
1
2 Carrot
2
3
Ich sehe, dass in der Ausgabe, ich bekomme zwei Zeilen, eine mit einem Match 'Obst'/'Veggie' und eine mit null
. Warum gibt die Abfrage auch eine Nullzeile zurück? Sorry, wenn mein Beispiel nicht so toll ist. Grundsätzlich versuche ich zwei weitere Spalten mit einigen Textbezeichnern zu erstellen.
Ich erwarte eine Ausgabe wie:
id Fruits Veggies
=====================
1 Apple
2 Carrot
3
EDIT: Ich habe die Tabellenstruktur oben und aktualisiert die Abfrage mit aus und wo Klauseln hinzugefügt. Nach der Implementierung der Bedingung in der WHERE-Klausel erkannte ich, dass die IDs ohne Apple oder Carrot wie # 3 überhaupt nicht zurückgegeben werden, wenn ich die Bedingung in der Where-Klausel habe.
Veröffentlichen Sie Ihre gesamte Abfrage; Sie scheinen die From-Klausel zu verpassen; Auch wenn Sie Ihre Tabelle und einige Beispieldaten posten könnten, wäre es hilfreich. – Kateract
Warum ignorierst du Kateracts Kommentar? Ihnen wird gesagt, dass Sie den Teil der Abfrage nicht anzeigen, der entscheidet, welche Zeilen in Ihrem Ergebnis angezeigt werden. Aber anstatt die FROM- und WHERE-Klausel hinzuzufügen, ändern Sie Ihre Frage, indem Sie plötzlich die ID 3 eingeben. Das hat wiederum nichts mit dem Teil der Anfrage zu tun, den Sie zeigen, sondern noch einmal mit dem Teil, den Sie * nicht * zeigen. –
sieht aus, als hätten Sie einen schlechten JOIN, die Tatsache, dass id doppelt ist, bedeutet, dass Sie möglicherweise eine Bedingung auf Ihrem JOIN verpassen. –