У меня проблемы с достаточно сложным (мне) запросом. Каждая из отдельных частей работает, она не производит ошибок, но не возвращает то, что она должна возвращать.mysql right join with not in (select)
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 (у которого нет места) и где идентификатор пользователя еще не указан в таблице_s.
Я создаю игровое поле в table_c, расположенном в графстве # 11 в штате # 12, а пользователи из округа № 11 и штата # 12 хотят найти все, к чему они могут принадлежать, поэтому они должны возвращать мою игровую площадку.
Это работает только тогда, когда идентификатор пользователя в WHERE C.userid = 'xxx' принадлежит тем, кто создал игровую площадку.
Что я хочу для пользователей, чтобы создать что-то принадлежащее, а затем позволить другим людям присоединиться к чему-то, поэтому WHERE userid = 'xxx' часть неправильная, и я не уверен, как ее написать ...
Является ли это ясным или ясным, как грязь?
получил определения схемы таблицы? – dispake
http://sqlfiddle.com/ использовать нам будет проще – jcho360