daG*_*vis 0 mysql sql join filter
好吧,我有两张桌子:
events
:id
,title
,description
trip_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)
猜猜你为什么没有得到任何结果!
归档时间: |
|
查看次数: |
423 次 |
最近记录: |