1

我一直在做一个工作项目,我需要两个表中的数据。我不是 MySQL 查询方面的专家,但我做到了这一点:

SELECT *
FROM `p_list` AS pl
JOIN `employee` AS em
WHERE em.id =10
AND pl.employee_id =10

当有 pl.employee_id 时它可以正常工作,但在没有 pl.employee_id 时返回结果。这是有道理的,但我不知道如何让它返回 em.id=10 以及是否设置了 pl.employee_id 。

我即将放弃,只运行两个查询,让 PHP 做这些脏活。

4

2 回答 2

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 JOIN另一方面,返回LEFT表上指定的所有行,无论它在另一个表上匹配还是不匹配。

于 2012-11-15T23:56:27.770 回答
0

您可以使用左连接来执行此操作:

SELECT *
FROM `p_list` AS pl
LEFT JOIN `employee` AS em ON em.id = pl.employee_id
WHERE em.id =10
于 2012-11-15T23:56:40.070 回答