PHP MYSQL对面选择

时间:2012-06-29 12:19:07

标签: php mysql

$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");

哪个会返回与该用户无关的剪辑,但会错过与任何用户无关的剪辑。

如果可以,请提供帮助:)

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

返回与ID传递的特定用户无关的所有剪辑和用户信息

SELECT * FROM clips, userclips 
WHERE userclips.userid!='$id'
ORDER BY clips.title

答案 2 :(得分: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)