1
$line = @mysql_query("SELECT * FROM clips, userclips 
WHERE userclips.userid='$id' AND 
userclips.clipid=clips.id ORDER BY clips.title");

これは、特定のユーザーに関連付けられているすべてのクリップを返します。しかし、私は正反対のことをするクエリを書こうとして困惑しています。そのユーザーに関連付けられていないすべてのクリップを選択します。

私はこれを試しました:

$line = @mysql_query("SELECT DISTINCT * FROM clips, userclips 
WHERE userclips.userid!='$id' AND userclips.clipid=clips.id ORDER BY clips.title");

これは、そのユーザーに関連付けられていないクリップを返しますが、どのユーザーにも関連付けられていないクリップを見逃します。

できれば助けてください:)

4

3 に答える 3

1
 $line = @mysql_query("SELECT DISTINCT * FROM clips WHERE clips.id 
 NOT IN (SELECT clipid FROM userclips WHERE userid='$id') ORDER BY clips.title");
于 2012-06-29T12:24:08.300 に答える
1

IDが渡された特定のユーザーに関連付けられていないすべてのクリップとユーザー情報を返します

SELECT * FROM clips, userclips 
WHERE userclips.userid!='$id'
ORDER BY clips.title
于 2012-06-29T12:25:41.847 に答える
0

この種のクエリには使用しません

Select * 
From clips 
Where id NOT IN  (SELECT clips.id 
                  FROM clips, userclips 
                  WHERE userclips.userid = '$id' 
                    AND userclips.clipid = clips.id 
                  ORDER BY clips.title)
于 2012-06-29T12:24:30.203 に答える