我有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上。
答案 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