Hier ist meine Abfrage. Ich versuche, eine Tabelle mit einer definierten Tabelle zu verbinden. Aber das Problem ist, wenn wir versuchen, Linke beizutreten, es wirkt wie innerer Join.Mysql Join Problem mit selbst definierten Tabelle
SELECT A.*,B.*,
(CASE WHEN A.preday != '' THEN 'A' ELSE 'P' END) AS PreStat
FROM (
SELECT '2016-05-04' AS preday
UNION
SELECT '2016-05-03'
UNION
SELECT '2016-05-02'
) AS A
LEFT JOIN `student_attendence` AS B ON B.date = A.preday
WHERE student_id='1' ;
Zum Beispiel in der rechten Tabelle nicht ein Datumsfeld mit dem Wert ‚2016.05.02‘ enthalten, aber wenn wir es versuchen, beitreten linke Seite mit NULL-Werte ..aber kommen sollte, wird es nicht Kommen Sie.
meine rechte beitreten Tabellenstruktur ist
Bitte helfen Sie mir, es zu lösen.
Was bedeutet "selbst definiert" hier? Bitte, wenn immer möglich, den ** Text ** von 'SHOW CREATE TABLE' anstelle eines Bildes posten. – tadman
ändere das 'where student_ID = '1'' in' as student_ID =' 1'', also ist es Teil des Joins anstelle des Where. Auf diese Weise wird das Limit vor dem Join angewendet, und die durch den Join erstellten Nullsätze bleiben erhalten. – xQbert
@tadman, das bedeutet, dass die Daten der linken Tabelle entsprechend den Umständen dynamisch definiert werden. –