Mysql 如何在select in功能中选择多于3个表外接程序
我无法获得最新的数据 我如何得到这样的查询Mysql 如何在select in功能中选择多于3个表外接程序,mysql,Mysql,我无法获得最新的数据 我如何得到这样的查询 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 s
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
查看您的查询,我猜您希望获得在friend_请求或follower_请求表中有条目的posts数据。如果这就是您的意思,那么您可以使用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=U.p_id
AND M.uid_fk in (1,2,3,4,7,8,9)
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 = 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
您不能包含或包含在中,但您可以通过OR将两个in连接起来,您所说的“我无法获取当前数据”是什么意思?是否涉及任何错误消息?你能肯定所有的条件都匹配得很好吗?据我所见,中间的情况完全是一团糟。您不能使用这样的条件,即在第1250条中,将一些或和放在一个范围内-其中一个选择中的表“M”不能用于字段列表哦,好的。只需编辑以下语句:orderbym.post\u id DESC to变成:orderbypost\u id DESC。我已经编辑了我以前的答案。我没有得到任何数据。空数据好吧,我前面的回答处理了您所面临的语句内问题。关于您得到的是空数据,如果您发布表和示例表数据以及预期结果集,我可以帮助您解决这个问题。1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在第10行“ORDER BY M.post_id DESC LIMIT 0,25”附近使用的正确语法缺少括号,现已更正。
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