MySQL

DBから重複レコードを除いて取得するSQL文

More than 1 year has passed since last update.

課題

以下のSQL文でデータを取得した時に重複したデータが全て取得され結果に格納されてしまいました。

select user_id from idols where idol = any(select idol from idols where user_id = 1);

uses・・ユーザーテーブル
idols・・ユーザーが好きなアイドルを登録するテーブル
以下のSQL文ではuser_id = 1のユーザーと同じアイドルを好きなユーザーを取得しているのですが、好きなアイドルが複数被っている場合同じuser_idが複数取得されてしまいました。

解決

以下のようにdistinctを入れるだけ。

select distinct user_id from idols where idol = any(select idol from idols where user_id = 1);

以上。

参考
https://www.dbonline.jp/mysql/select/index13.html