簡體   English   中英

從mysql中的3個不同表中選擇和排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM