0

我在mysql中有两个表,结构如下:

Events: id
Events_artists: event_id, more columns

我想在 events_artists 表中找到与 events 中的 id 不匹配的 event_ids。

到目前为止,我唯一想到的是:

SELECT * FROM events,events_artists WHERE events_artists.event_id!=events.id

但是,这是废话,基本上会返回整个表。

有谁知道如何解决这个问题?

谢谢!

查尔斯

找到解决方案,感谢 Andrzej Bobak

select * from events_artists where event_id not in(从事件中选择id)

4

2 回答 2

3

这种方法怎么样?

select * from events_artists where event_id is null or event_id not in (select id from events)
于 2012-07-20T11:53:03.440 回答
1
select * from events_artists a
left join events b on a.id = b.id
where b.id is null

您的方法使用笛卡尔积将每一行彼此连接起来。因此,您的where条件只是过滤包含不匹配行的结果,但由于笛卡尔积,这将是很多

于 2012-07-20T11:50:57.970 回答