如何查找显示其他表中不存在数据的数据

时间:2018-02-10 16:10:33

标签: php sql

我有3张桌子:

TABLE_1:

| id | test |total_employee|
+----+------+--------------+
| 1  | xxxx |       3      |
| 2  | yyyy |       2      |
| 3  | zzzz |       3      |
----------------------------

TABLE_2:

| id | id_table1 |id_employee|
+----+-----------+-----------+
| 1  |    1      |     1     |
| 2  |    1      |     2     |
| 3  |    1      |     3     |
| 4  |    1      |     1     |
| 5  |    1      |     2     |
| 6  |    1      |     1     |
| 7  |    1      |     2     |
| 8  |    1      |     3     |
-----------------------------

表员工:

    | id | name |
    +----+------+
    | 1  | emp1 |
    | 2  | emp2 |
    | 3  | emp3 |
    -------------

现在我希望显示表employee和table_2中的所有员工,如果表employee中的员工记录存在,但是在table_2中则不存在。如果记录不存在,则标记为“未选中”,但如果存在则标记为“已检查”。

关键是如何从table_employee中查找数据,无论数据是否存在于table_2上。

1 个答案:

答案 0 :(得分:0)

IF()操作允许您执行此操作:

SELECT e.*, IF(ISNULL(t2.id), 'unchecked', 'checked') AS `checked` 
FROM table_employee e 
LEFT JOIN table_2 t2 ON t2.id_employee = e.id