как решить левое соединение с где пункт не работает - PullRequest
1 голос
/ 10 апреля 2019

У меня есть запрос с использованием условия LEFT JOIN с WHERE, но когда я выполняю свой запрос, несопоставленные данные не отображаются в базе данных. Как я могу решить эту проблему?

SELECT tbguru.id, tbabsenpeg.NIK, tbabsenpeg.tgl 
FROM `tbguru` 
LEFT JOIN tbabsenpeg ON tbguru.id = tbabsenpeg.NIK AND tbguru.kodeapp = tbabsenpeg.kodeapp 
WHERE tbguru.kodeapp='Mantri-Lab 1020' 
AND (tbabsenpeg.tgl = '2019-03-09' OR tbabsenpeg.tgl IS NULL);

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Я думаю, что вы хотите условие для второй таблицы в предложении on:

SELECT g.id, a.NIK, a.tgl 
FROM tbguru g LEFT JOIN
     tbabsenpeg a
     ON g.id = a.NIK AND
        g.kodeapp = a.kodeapp AND
        a.tgl = '2019-03-09'
WHERE g.kodeapp = 'Mantri-Lab 1020' ;
0 голосов
/ 10 апреля 2019

Вы должны поместить пункт "где"

ГДЕ tbguru.kodeapp = 'Mantri-Lab 1020'

внизу

SELECT tbguru.id, tbabsenpeg.NIK, tbabsenpeg.tgl 
FROM `tbguru` LEFT JOIN tbabsenpeg 
     ON tbguru.id = tbabsenpeg.NIK 
     AND tbguru.kodeapp = tbabsenpeg.kodeapp 
     AND tbabsenpeg.tgl = '2019-03-09' 

WHERE tbguru.kodeapp='Mantri-Lab 1020' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...