假设我有 2 张 table ,分别是人和工作。
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| job_id | int(11) | NO | | NULL | |
+--------+--------------+------+-----+---------+----------------+
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| j_id | int(11) | NO | PRI | NULL | auto_increment |
| j_name | varchar(255) | NO | | NULL | |
| j_active | tinyint(1) | NO | | 0 | |
+----------+--------------+------+-----+---------+----------------+
我如何进行选择,它只返回一个 job_id
(其中 j_active = 1
),否则返回 0 或 NULL?因此,我希望始终返回所有人,但是当他们的工作不活跃时,我不想返回他们的工作 ID
最佳答案
select * from person p left join job j on p.job_id=j.j_id and j.j_active=1
关于sql - 子表条件返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4692884/