2010-02-12 22 views
3

我一直在使用MYSQL幾年,現在我經常發現自己在想這個問題,但從來沒有到現在纔開始研究它。所以在這裏。比方說,我有一張作者名單和一張書。每本書都有一個字段可將其鏈接到作者。如何限制MYSQL中的複合記錄?

現在,讓我們說,我想要一個作家和他的書,都在一個集合。

SELECT * FROM authors, books WHERE books.author = authors.id 

到目前爲止沒有問題。現在要處理棘手的部分:我如何得到5位作者和他的書?

如果我這樣做:

SELECT * FROM authors, books WHERE books.author = authors.id LIMIT 5 

我就拉閘獲得第5冊鏈接到一個單一的作者。

那夠清楚了嗎?這可能在MYSQL中做,或者我不得不訴諸代碼(我不想這樣做)?

非常感謝!

回答

4

使用子查詢:

SELECT * 
FROM (SELECT * FROM authors LIMIT 5) AS authors, books 
WHERE books.author = authors.id 

瞭解更多關於這裏的子查詢中的FROM子句: http://dev.mysql.com/doc/refman/5.0/en/unnamed-views.html

+0

這是唯一的辦法?我曾希望有一些更簡潔的方法可能會涉及在限制條款上做巫術。這個示例場景非常簡單,但是我的實際表格非常複雜,我希望有一些方法不會涉及拆除現有的查詢構造。呃,好吧。感謝您的迴應! – user272053 2010-02-12 19:10:54