MySQL查询WHERE x,如果设置为y

时间:2012-11-15 23:54:45

标签: mysql

我一直致力于一个正在进行的项目,我需要来自两个表的数据。我不是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完成肮脏的工作。

2 个答案:

答案 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 JOININNER JOINLEFT 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