我正在設計一個像pinterest(用於學習)的網站,我想知道我必須在主頁上做什麼查詢來顯示用戶的流。如何避免這個複雜的查詢?
我創建了這些6個表:
users
boards
pictures
boards_pictures (many-to-many table)
followers
comments
而在家裏,我做這個查詢來獲取所有追隨者的畫面。
SELECT users.username, pictures.link, comments.comment, boards.title
FROM boards_pictures, pictures, followers, users, comments, boards
WHERE (boards_pictures.id_user = followers.id_following)
AND (boards_pictures.id_picture = pictures.id)
AND (followers.id_user = $_session['userid'])
AND (users.id = followers.id_following)
AND (comments.picture_id = pictures.id)
AND (boards.id = boards_pictures.boards_id)
是否有辦法避免這種複雜查詢(含6桌的JOIN)?
在不知道每個表的表結構的情況下回答這個問題有點困難。 – saluce
加入?我看不到一個單一JOIN – mkk
這並不接近複雜的查詢(我今天早些時候修改了一個1000行)如果你需要所有六個表加入到所有這些表中,但不要使用隱式聯接,是非常糟糕的編程習慣和SQL反模式。沒有意義學習不正確,從現在開始只使用顯式連接。 – HLGEM