所以我有两个 MySQL 查询,如果我有知识可以组合,但我没有,所以这就是我转向“SO”的原因,在那种情况下我没有尝试任何东西,因为它超出了我的范围.我想将所有内容合并到一个查询中,如果这不可能,请告诉我。
查询一“这会选择你所有 friend 的帖子,包括你的”:
"SELECT b.*, c.photo, d.name, e.status
FROM post b
INNER JOIN profile c
INNER JOIN user d
INNER JOIN user_friendship e
ON b.from_user = c.user_id
AND b.from_user = d.id
AND e.friend_id = b.from_user
WHERE e.status = :status
AND e.user_id = :id
ORDER BY b.id DESC LIMIT 20"
查询二“这会选择你关注帖子的所有人”:
"SELECT b.*, c.photo, d.name, e.status
FROM post b
INNER JOIN profile c
INNER JOIN user d
INNER JOIN user_follower e
ON b.from_user = c.user_id
AND b.from_user = d.id
AND e.to_id = b.from_user
WHERE e.status = :status
AND e.who_id = :id
ORDER BY b.id DESC LIMIT 20"
我将这些组合在一起,但只与 php 组合。我想将两者结合在一个 MySQL 查询中。提前致谢
最佳答案
SELECT *
FROM
(SELECT b.*,
c.photo,
d.name,
e.status
FROM post b
INNER JOIN profile c
INNER JOIN USER d
INNER JOIN user_friendship e ON b.from_user = c.user_id
AND b.from_user = d.id
AND e.friend_id = b.from_user
WHERE e.status = :status
AND e.user_id = :id LIMIT 20
UNION SELECT b.*,
c.photo,
d.name,
e.status
FROM post b
INNER JOIN profile c
INNER JOIN USER d
INNER JOIN user_follower e ON b.from_user = c.user_id
AND b.from_user = d.id
AND e.to_id = b.from_user
WHERE e.status = :status
AND e.who_id = :id LIMIT 20 ) MainQuery
ORDER BY id DESC
关于php - 我怎样才能结合 2 个复杂的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312428/