mysql正确加入而不是(选择)

时间:2012-06-07 16:55:14

标签: mysql join notin

我遇到了一个相当复杂(对我来说)查询的问题。每个单独的部分都有效,它不会产生任何错误,但它不会返回它应该返回的内容。

table_c = things to belong to
table_s = users that belong to things in table_c
table_u = users

查询是:

SELECT * FROM table_c AS C 
RIGHT JOIN table_u AS U ON C.userid = U.user_id 
WHERE C.userid='xxx' 
  AND C.c_county IN (11, 00) 
  AND C.c_state IN (12, 00) 
  AND C.c_nation='US' 
  AND C.c_privacy='0' 
  AND C.userid NOT IN ( 
    SELECT userid FROM table_s AS S WHERE S.channel_id = C.id)
ORDER BY U.security, C.chan_name

我需要做的是在table_c中选择所有“属于的东西”,其中table_c的县/州/国家与table_u中的用户县/州/国家设置或“要归属的东西”是00(其中有没有位置)以及userid不在table_s中的位置。

我在位于#12州的#11县的table_c中创建了一个游乐场,来自#11州和#12州的用户希望找到他们可以归属的所有东西,以便他们查询应该返回我的游乐场。

仅当WHERE C.userid ='xxx'中的用户ID属于创建游乐场的任何人时才有效。
我想要的是让用户创建属于的东西,然后让其他人加入那个东西,所以WHERE userid ='xxx'部分是不对的,我不知道如何写它......

这是清楚还是明显的泥浆?

1 个答案:

答案 0 :(得分:0)

答案是完全删除联接...因为我已经拥有建立县/州/国家所需的用户信息我还拥有其他一切所以不需要加入......

感谢额外的目光!