MySQL,JOIN over multiple tables&不是IN?

时间:2015-04-24 20:53:02

标签: php mysql select join

在我的应用程序(图像投票)中我有几个用户角色,选民和管理员。

用户选择如下所示:

SELECT * from wp_awa_upload, category, subcategory 
WHERE wp_awa_upload.uid = '$_SESSION[id]' 
AND wp_awa_upload.parent_cat = category.cat_id 
AND wp_awa_upload.sub_cat = subcategory.id

用户可以看到他自己的图像,但选民应该看到他没有投票的所有图像。当选民投票时,将会有一个新的条目“wp_awa_session”,其中包含上传图像的ID和他自己的ID。所以选择上面必须采用“和Session_ID和上传的ID不在表wp_awa_session中”的条件。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这是正确的选择: - )



SELECT * 
FROM wp_awa_upload wau
JOIN category c ON ( wau.parent_cat = c.cat_id ) 
JOIN subcategory s ON s.id = wau.sub_cat
WHERE STATUS =  '1'
AND (
wau.id, wau.uid
) NOT 
IN (

SELECT upload_id, user_id
FROM wp_awa_session
WHERE user_id =  '$_SESSION[id]'
AND upload_id = wau.id
)




感谢您的帮助: - )