[英]Selecting and ordering from 3 different tables in mysql
我有一個代碼,該代碼按價格desc選擇“賺”了錢的10個用戶。 我一直在使用此查詢:
SELECT products.seller,
SUM(products.price * (1 - reseller.fee / 100)),
COUNT(*)
FROM products
INNER JOIN reseller ON reseller.username = products.seller
WHERE (products.seller!= 'MYSITE')
AND products.sold=1
AND products.sellerpaid=0
AND products.username != 'None'
GROUP BY products.seller
ORDER BY SUM(products.price * (1 - reseller.fee / 100)) DESC
LIMIT 10
由此我得到:
uploaded_by SUM() COUNT()
username 10.00 2
username1 11.00 3
....
可以正常工作,但是現在我有了另一個表,products1,並且包含更多內容,這就是為什么我無法合並它們的原因,因此我希望獲得與第一個表相同的結果,但還要從該表中獲取所有產品的價格。 我已經嘗試過LEFT JOIN,RIGHT JOIN和許多其他方法,但仍然無法正確執行。
請不要告訴我閱讀有關聯接的更多信息,因為我已經擁有了,只是做不到,如果您可以提出解決方案,請在可能的情況下發布。
另外,如果您不了解任何內容,請發表評論,以便我進一步說明。
福克
如果Im沒錯,則可以使用兩個表的UNION。 我不知道MySQL是否支持此功能,但是SQLServer可以:
SELECT tmp.seller,
SUM(tmp.price * (1 - tmp.fee / 100)),
COUNT(*)
FROM (select p.seller, p.price, r.fee from products p
INNER JOIN reseller r ON r.username = p.seller
WHERE (p.seller!= 'MYSITE')
AND p.sold=1
AND p.sellerpaid=0
AND p.username != 'None'
UNION ALL
select p1.seller, p1.price, r1.fee from products p1
INNER JOIN reseller r1 ON r1.username = p1.seller
WHERE (p1.seller!= 'MYSITE')
AND p1.sold=1
AND p1.sellerpaid=0
AND p1.username != 'None') tmp
GROUP BY tmp.seller
ORDER BY SUM(tmp.price * (1 - tmp.fee / 100)) DESC
LIMIT 10
希望對你有幫助
PD。 對不起,我英語不好
通過處理一些查詢,我設法解決了這個問題。 解決方案是:
SELECT * FROM (select p.seller, sum(p.price * (1-r.fee/100)) as sumi, count(*) as counti from products p
INNER JOIN reseller r ON r.username = p.seller
WHERE (p.seller!= 'MYSITE')
AND p.sold=1
AND p.resellerpaid=0
AND p.username != 'None'
GROUP BY p.seller
UNION
select p1.seller, sum(p1.price * (1-r1.fee/100)) as sumi, count(*) as counti from products1 p1
INNER JOIN reseller r1 ON r1.username = p1.seller
WHERE (p1.seller!= 'MYSITE')
AND p1.sold=1
AND p1.resellerpaid=0
AND p1.username != 'None' GROUP BY p1.seller) tmp
ORDER BY sumi DESC
我感謝@ gerardo-hiram-vega-cabrera對於他的回答,他的回答確實幫助我弄清楚了UNION的工作原理,在閱讀了很多在Google上發現的廢話之后,我無法弄清楚。
謝謝stackoverflow;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.