2008-12-11 37 views
1

Postgres裏我相當肯定,你可以做這樣的事情MySQL的 - 另一個查詢中嵌入數查詢

SELECT 
    authors.stage_name, 
    count(select id from books where books.author_id = authors.id) 
FROM 
    authors, 
    books; 

從本質上講,在這個例子中,我想回的作者名單,有多少書各有書面....在相同的查詢。

這可能嗎?我懷疑這種做法是相當幼稚..

謝謝:)

回答

1

嗯,首先,它返回所有作者的笛卡爾乘積中的所有圖書,無論該作者是否寫了這本書。

以下是我會寫一個查詢來獲取你說你想要的結果:

SELECT a.stage_name, COUNT(b.id) 
FROM authors a 
    LEFT OUTER JOIN books b ON (a.id = b.author_id) 
GROUP BY a.id; 

你需要學習如何寫,如果你使用SQL連接查詢。加入到SQL是什麼循環到應用程序編程語言。即這是一個你需要知道的基本編程構造。

0

如何使用連接:

SELECT authors.stage_name, count(*) 
FROM authors INNER JOIN books on books.author_id = authors.id 
GROUP BY authors.stage_name