0

users、songs、users_songs の 3 つのテーブルがあるとします。ユーザーは自分の曲、または編集を依頼された曲の編集者ですが、他のユーザーを編集することはできません。

users
-id
-username

songs
-id
-is_ready
-name

users_songs
-id
-user_id
-song_id

is_readyは 0 または 1 のいずれかです。これは、曲がフロント ページのリストに表示される準備ができていない/準備ができていないことを意味します。

現在のユーザー ID (ready=1 または ready=0) が所有するすべての曲を選択したいのですが、他のユーザー ID が所有している場合はready=1の曲のみを選択します。

競合する結合を要求している可能性があると思うので、それが可能かどうかはわかりません..

4

3 に答える 3

0

これはすべて 1 つのクエリで実行できます。

ここで例を参照してください

SELECT us.user_id, s.name, s.is_ready
FROM songs s, users u, users_songs us
WHERE us.song_id = s.id
and 
(u.id = us.user_id 
OR (us.user_id <> u.id AND s.is_ready = true))
AND u.id = 1;
于 2013-10-09T14:33:47.260 に答える