我遇到了一个相当复杂(对我来说)查询的问题。每个单独的部分都有效,它不会产生任何错误,但它不会返回它应该返回的内容。
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'部分是不对的,我不知道如何写它......
这是清楚还是明显的泥浆?
答案 0 :(得分:0)
答案是完全删除联接...因为我已经拥有建立县/州/国家所需的用户信息我还拥有其他一切所以不需要加入......
感谢额外的目光!