【发布时间】:2023-04-10 03:55:02
【问题描述】:
您好,我尝试显示两个表中的数据,但第二个表为空
SELECT ST.* , E.data, E.status
FROM `students` ST
INNER JOIN `table2` E ON E.id_student=ST.id_student
WHERE ST.class='$class' AND E.data LIKE '$year-$month-%'
ORDER BY ST.surname, ST.name, E.data
我可以为我的请求使用什么查询(如果第二个表是空的,我只需要学生列表,如果不是我需要结果),我知道 Inner JOIN 仅在记录存在时才显示记录
【问题讨论】:
-
使用
LEFT JOIN;当与students中的行匹配的行不存在时,您将获得table2字段的NULL。 -
当 LEFT JOIN 时,将外部表的 WHERE 条件移动到它的 ON 子句中。 (否则仍然是内部连接。)