您好我有两张桌子 我们称之为表格时间表和表格约会
日程表:
+----+
| id |
+----+
| 3 |
| 42 |
+----+
约会表:
+----+-------------+
| id | schedule_id |
+----+-------------+
| 1 | 0 |
| 2 | 42 |
+----+-------------+
我有一个查询从数据库中获取约会和日程表,它看起来与此类似:
SELECT id FROM appointment
UNION ALL
SELECT id FROM schedule
我想获得所有的时间表和约会,如果有一个具有匹配schedule_id的约会我希望从结果中删除时间表行
最终结果将是
+----+-------------+
| id | schedule_id |
+----+-------------+
| 1 | 0 |
| 2 | 42 |
| 3 | 0 |
+----+-------------+
创建该查询需要做什么?
答案 0 :(得分:1)
我建议:
select a.id, a.schedule_id
from appointment a
union all
select s.id, 0
from schedule s
where not exists (select 1 from appointment a where a.id = s.id);
答案 1 :(得分:1)
这是一种可能性:
select id, schedule_id from
(
select id, 0 as schedule_id from schedule
union
select id, schedule_id from appointment
) t
where id not in (select distinct schedule_id from appointment);