OK, đầu tôi đau ...!MySQL: tìm cách SUM các UNION này cùng nhau
này truy vấn MySQL đẹp:
(SELECT mtwitterfollowers AS twitfollow FROM `media` WHERE media.id=1)
UNION
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN positions ON position_id = positions.id WHERE peoplejoin.media_id = 1)
UNION
(SELECT SUM(twitterfollowers) AS twitfollow FROM people LEFT JOIN peoplejoin ON peoplejoin.people_id = people.id LEFT JOIN networkjoin ON networkjoin.network_id = peoplejoin.network_id LEFT JOIN positions ON position_id = positions.id WHERE networkjoin.media_id = 1)
... trả về ba dãy số đẹp.
Lý tưởng nhất, tôi muốn truy vấn này trả lại tất cả ba kết quả "twitfollow", Tóm tắt lại với nhau.
Tuy nhiên, đặt vòng SUM cho chúng tôi lỗi "mọi bảng dẫn xuất phải có bí danh riêng" và tôi hơi bối rối về cách giải quyết điều đó.
(Tất nhiên, tôi chỉ có thể tóm tắt các kết quả trong PHP; nhưng tôi giả định rằng nó nhanh hơn để làm điều này bằng cách sử dụng máy chủ MySQL Tôi có thể đúng.?)
Aha. Các "t1" dường như làm các trick. Rất cám ơn, Dan. (UNION ALL - vâng, tôi cần xem xét hai câu trả lời là gì.) – jamescridland
Vâng, bạn phải cung cấp cho bảng dẫn xuất bạn đang chọn từ một tên, ngay cả khi bạn không sử dụng tên ... đó là tất cả 't1' là. –