2014-11-14 114 views
0

查詢:如何從嵌套選擇嵌套兩個值? MySQL的

SELECT business.bussId, 
(select count(invoices.userId) from invoice where invoice.userId = '3000') 
as invoiceCount,  
(select SUM(invoices.price) from invoice where invoice.userId = '3000') 
as invoiceprice , 
FROM business WHERE business.bussId=100 

我怎麼能拿使用發票價格和invoiceCount一個嵌套的選擇?

+0

你可以把你的表嗎? – 2014-11-14 12:52:20

回答

2

移動子查詢到from條款:

SELECT b.bussId, i.invoiceCount, i.invoiceprice 
FROM business b cross join 
    (select count(i.userId) as invoiceCount, SUM(i.price) as invoiceprice 
     from invoice i 
     where i.userId = '3000' 
    ) i 
WHERE b.bussId = 100; 

實際上,你可以寫這個沒有子查詢,但你的問題是專門關於使用子查詢。

這形式是:

SELECT b.bussId, count(i.userId) as invoiceCount, SUM(i.price) as invoiceprice 
FROM business b left join 
    invoice i 
    on i.userId = '3000' and b.bussId = 100 
GROUP BY b.bussId; 
+0

謝謝你的回答,不,我不想用左連接,交叉連接做什麼? – david 2014-11-14 13:01:23

+0

「交叉連接」在兩個表格之間創建笛卡爾積。當其中一個表只有一行(在這種情況下大概是真的)時,它只是將額外的列添加到結果集中。 – 2014-11-14 13:03:00