![](/img/trans.png)
[英]MySQL FULL JOIN one table, and LEFT JOIN another in the same query?
[英]Mysql Query with LEFT JOIN and having count of OrderID from another table… Stuck
這是我當前的查詢,並且按預期工作正常。
SELECT a.ID, a.CreatedDate, a.Status, b.OrderTotal,
e.Rate, f.RouteType, f.Code, g.Country, h.Network
from orders AS a
LEFT JOIN order_details AS b ON a.ID = b.OrderID
LEFT JOIN order_routes AS d ON a.ID = d.OrderID
LEFT JOIN userrate AS e ON e.ID = d.RouteID
LEFT JOIN ratelist AS f ON f.ID = e.RateListID
LEFT JOIN country AS g ON f.CountryID = g.ID
LEFT JOIN network AS h ON f.NetworkID = h.ID
WHERE a.UserID = 16 ORDER BY a.CreatedDate DESC
但是,現在我試圖添加另一列,該列向我顯示order_routes中每個OrderID的出現次數
我的訂單路線現在看起來像這樣
ID OrderID RouterID
1 1 1
2 1 2
3 2 2
4 2 3
5 2 5
所以我想要一列,該列向我顯示Order_routes表中有多少OrderID外觀。
我想我的查詢中需要子查詢,但是當我嘗試它給我錯誤時。 讓你知道
a.ID = d.OrderID
e.ID = d.RouteID
請幫忙。
嘗試這個
SELECT a.ID, a.CreatedDate, a.Status, b.OrderTotal,
e.Rate, f.RouteType, f.Code, g.Country, h.Network, d2.cnt AS OrderCount
FROM orders AS a
LEFT JOIN order_details AS b ON a.ID = b.OrderID
LEFT JOIN order_routes AS d ON a.ID = d.OrderID
LEFT JOIN (SELECT OrderID as OrderID2, COUNT(*) AS cnt FROM order_routes GROUP BY 1) AS d2 ON a.ID = d2.OrderID2
LEFT JOIN userrate AS e ON e.ID = d.RouteID
LEFT JOIN ratelist AS f ON f.ID = e.RateListID
LEFT JOIN country AS g ON f.CountryID = g.ID
LEFT JOIN network AS h ON f.NetworkID = h.ID
WHERE a.UserID = 16 ORDER BY a.CreatedDate DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.