daG*_*vis 0 mysql sql join filter
好吧,我有两张桌子:
events:id,title,descriptiontrip_events:id,event_id(指向events.id)我需要从名为table的表中选择结果events.
SELECT *
FROM `events`
Run Code Online (Sandbox Code Playgroud)
就这么简单吧?
我需要实现的是,我需要从中选择结果events,但排除那些中的行trip_events(如果events.id!= trip_events.event_id排除).
这是一个例子:
events:
id:5,id:6,id:7,id:8;trip_events:
event_id:6,event_id:8;使用此数据集,仅返回id为5和的事件6.
这该怎么做?
我试过这样的:
SELECT *
FROM `events`
JOIN `trip_events`
ON (`trip_events`.`event_id` = `events`.`id`)
WHERE `trip_events`.`event_id` != `events`.`id`
Run Code Online (Sandbox Code Playgroud)
但它没有用.
select * from events where id not in
(select event_id from trip_events)
Run Code Online (Sandbox Code Playgroud)
编辑:
作为旁注,ON条件可以被认为是一个WHERE条件.查询结果与以下内容相同
SELECT *
FROM `events`
JOIN `trip_events`
ON 1 = 1
WHERE (`trip_events`.`event_id` = `events`.`id`)
AND (`trip_events`.`event_id` != `events`.`id`)
Run Code Online (Sandbox Code Playgroud)
猜猜你为什么没有得到任何结果!