0

次の構造を持つ mysql に 2 つのテーブルがあります。

Events: id
Events_artists: event_id, more columns

イベントの ID と一致しないテーブル events_artists で 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 に答える