2016-06-29 5 views
1

Ich habe folgende MySQL-Abfrage:MySQL - verbundene Tabellenabfrage ist null, die die gesamte Abfrage null machen

SELECT u.id, u.ap, q.quests 
FROM users u 
JOIN(    
    SELECT count(quest) as 'quests', user 
    FROM active_quests 
    WHERE user = 143 
) q 
ON u.id = q.user 
WHERE u.id = 143 

Das Problem, das ich in laufen lasse, ist, dass manchmal die Join-Abfrage aus der active_quests Tabelle NULL sein wird, weil Es wird keinen Eintrag für diesen bestimmten Benutzer geben. Dies führt jedoch dazu, dass die gesamte Abfrage NULL wird. Der Benutzer hat immer einen ap Wert, aber nicht immer einen quests Wert.

Ich wollte etwas wie SELECT u.id, u.ap, IFNULL(q.quests, 0) tun, aber es funktioniert nicht.

Wie löse ich dieses Problem?

Antwort

3

Verwenden Sie LEFT JOJN anstelle von Join. Nur Join bedeutet einen inneren Join. Reference

+0

Arbeitete, danke! – ALR