我一直致力于一个正在进行的项目,我需要来自两个表的数据。我不是MySQL查询的专家,但我做到了这一点:
SELECT *
FROM `p_list` AS pl
JOIN `employee` AS em
WHERE em.id =10
AND pl.employee_id =10
当有pl.employee_id时它工作正常,但是在没有的情况下返回o结果。这是有道理的,但我不知道如何让它返回em.id = 10并且如果设置了pl.employee_id那么。
我即将放弃,只是运行两个查询,让PHP完成肮脏的工作。
答案 0 :(得分:1)
试试这个,使用LEFT JOIN
SELECT *
FROM `p_list` AS pl
LEFT JOIN `employee` AS em
ON em.id = pl.employee_ID
WHERE em.id = 10
基本上,你现在正在做的是INNER JOIN
。 INNER JOIN
与LEFT JOIN
(,您需要的)不同。如果在连接条件中指定的记录在另一个表上至少有一个匹配,则INNER JOIN
仅返回结果。另一方面,,,返回 LEFT 表中指定的所有行,无论它在另一个表上是匹配还是无匹配。
答案 1 :(得分:0)
您可以使用左连接执行此操作:
SELECT *
FROM `p_list` AS pl
LEFT JOIN `employee` AS em ON em.id = pl.employee_id
WHERE em.id =10