как сделать выбор более 3-х таблиц добавить в функцию выбора IN - PullRequest
0 голосов
/ 13 сентября 2018
SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, U.l_name
 FROM posts M, person U
 WHERE M.uid_fk=U.p_id
    AND M.uid_fk in (
      (select send_id from friend_request where p_id = '7' AND status=1)
        or
     (select p_id from friend_request where send_id = '7' AND status=1) 
        AND
     (select send_id from follower_request where p_id = '7' AND status=1 AND M.uid_fk = '7')
        AND 
     M.uid_fk = 7
  )
 order by M.post_id DESC

и сделано я не могу получить текущие данные.

как мне получить этот запрос

SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, U.l_name
 FROM posts M, person U
 WHERE M.uid_fk=U.p_id
  AND M.uid_fk in (1,2,3,4,7,8,9)
 order by M.post_id DESC  

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Трудно понять, что вы на самом деле намереваетесь, но это может помочь.

SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, U.l_name
FROM posts M
INNER JOIN person U ON M.uid_fk=U.p_id
WHERE  M.uid_fk = 7
AND  ( 
           M.uid_fk in (select send_id from friend_request where p_id = '7' AND status=1)
        OR M.uid_fk in (select p_id from friend_request where send_id = '7' AND status=1)
        )
AND M.uid_fk in(select send_id from follower_request where p_id = '7' AND status=1)
ORDER BY M.post_id DESC

Вы не можете включить ИЛИ внутри in(), но вы можете объединить два in() с ИЛИ

0 голосов
/ 13 сентября 2018

Глядя на ваш запрос, я думаю, вы хотите получить данные постов, в которых есть записи в таблицах friend_request или follower_request. Если вы это имеете в виду, вы можете использовать UNION для запроса:

SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, 
U.l_name
FROM posts M, person U
WHERE 
   M.uid_fk = 7
   AND M.uid_fk=U.p_id
   AND M.uid_fk in (select send_id from friend_request where p_id = M.uid_fk AND 
   status=1)

UNION ALL

SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, 
U.l_name
FROM posts M, person U
WHERE 
   M.uid_fk = 7
   AND M.uid_fk=U.p_id
   AND M.uid_fk in (select p_id from friend_request where send_id = M.uid_fk AND 
   status=1) 

UNION ALL

SELECT M.post_id, M.uid_fk, M.message, M.image1,M.roles, M.created,U.uname, U.f_name, 
U.l_name
FROM posts M, person U
WHERE 
   M.uid_fk = 7
   AND M.uid_fk=U.p_id
   AND M.uid_fk in (select send_id from follower_request where p_id = M.uid_fk AND 
   status=1)
ORDER BY post_id DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...