我遇到了(对我而言)相当复杂的查询问题。每个单独的部分都有效,它不会产生错误,但它不会返回它应该返回的内容。
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(没有位置)并且用户 ID 尚未在 table_s 中。
我在第 12 州第 11 县的 table_c 中创建了一个游乐场,来自第 11 县和第 12 州的用户想要找到他们可以属于的所有东西,因此他们查询应该返回我的游乐场。
这仅在 WHERE C.userid='xxx' 中的用户 ID 属于创建游乐场的人时才有效。
我想要的是让用户创建属于自己的东西,然后让其他人加入那个东西,所以 WHERE userid='xxx' 部分是不正确的,我不知道如何写它......
这是清澈的还是像泥一样清澈的?