我無法弄清楚如何從JOIN捕獲多個值。不應該那麼困難,但不知何故我不記得如何做到這一點。MYSQL:如何處理一個到多個表中的多個值JOIN
Authors:
id | authorname
Books
id ] authorid |bookname
SELECT a.*,b.*
FROM authors `a`
LEFT JOIN books `b`
ON a.id = b.authorid
WHERE a.id = 1
GROUP BY a.id
這只是返回作者的第一本書,不是所有的人。
這不是整個查詢,因爲還有其他一些事情正在進行,例如發佈者,上次排序等,以便我想按作者對其進行分組。此外,響應得到JSON編碼併發送到應用程序。因此,如果可能的話,我不希望查詢返回每本書的行,因爲這會使jsonencoding和api複雜化。
我只想弄清楚如何捕捉作者的多本書,並將它們保存在某種數組中,以便稍後可以對其進行解碼。
感謝您通過正確途徑獲得的任何想法。
編輯:
與GROUP_CONCAT(b.bookname)爲book names
解決,... 這使得以逗號分隔的列表中的多個值。
鬆散GROUP BY並查看它做了什麼 – RiggsFolly
它打印出每本書的記錄。它確實獲得了所有書籍,但是這些記錄不再與作者對應,並且這是針對作者頁面的(其中列出了該作者的書籍)。 – zztop