-1
我有一个查询,其中一个LEFT JOIN
工作正常。然而,当我将第二个LEFT JOIN
添加到第一个表中每个字段具有多个记录的表中时,我得到了两个表中的结果的产品,即书籍x发布者返回。我怎样才能防止这种情况发生?MYSQL:处理多个LEFT JOIN
SELECT a.*,b.*,p.*, group_concat(b.id as `bids`)
FROM authors `a`
LEFT JOIN books `b`
ON b.authorid = a.id
LEFT JOIN publishers `p`
on p.authorid = a.id
GROUP by a.id
编辑:
想通了。做到这一点的方法是使用子查询作为this answer:
SELECT u.id
, u.account_balance
, g.grocery_visits
, f.fishmarket_visits
FROM users u
LEFT JOIN (
SELECT user_id, count(*) AS grocery_visits
FROM grocery
GROUP BY user_id
) g ON g.user_id = u.id
LEFT JOIN (
SELECT user_id, count(*) AS fishmarket_visits
FROM fishmarket
GROUP BY user_id
) f ON f.user_id = u.id
ORDER BY u.id;
更新您的问题添加一个正确的数据示例和预期结果 – scaisEdge
我更新了问题...任何想法? – user6631314
您的问题不清楚...请添加适当的数据样本和预期的结果.. – scaisEdge