我有三個表格:user,friend_recommendation和movie。 我想獲得推薦這部電影給我的人的名字,以及電影表中的電影信息和friend_recommendation表中的評論。我該怎麼做呢?如何使用單個查詢查詢多個表格
假設用戶表具有名稱作爲屬性,電影表具有電影標題作爲屬性,並且friend_recommendation具有UID(推薦用戶),FID(推薦用戶)和COMMENT(什麼是來自UID的評論FID)
它甚至可以在一個查詢中做到這一點?
我有三個表格:user,friend_recommendation和movie。 我想獲得推薦這部電影給我的人的名字,以及電影表中的電影信息和friend_recommendation表中的評論。我該怎麼做呢?如何使用單個查詢查詢多個表格
假設用戶表具有名稱作爲屬性,電影表具有電影標題作爲屬性,並且friend_recommendation具有UID(推薦用戶),FID(推薦用戶)和COMMENT(什麼是來自UID的評論FID)
它甚至可以在一個查詢中做到這一點?
所以三個表,基本上是與這些字段(大大簡化):
users (userId, name)
movies (movieId, movieInfo)
recommendations (fromUserId, toUserId, movieId, comment)
SELECT fromUser.name, toUser.name, m.movieInfo, r.comment
FROM recommendations r
INNER JOIN movies m ON m.movieId = r.movieId
INNER JOIN users fromUser ON r.fromUserId = fromUser.userId
INNER JOIN users toUser ON r.toUserId = toUser.userId
WHERE r.toUserId = << my user id, or whatever your criteria are >>
編輯迴應下面的評論:另外檢索名/用戶的詳細信息,電影推薦到就像再次加入用戶表一樣簡單。您可以在JOIN
中看到我們從users
中選擇了兩次。
我認爲你還需要friend_recommendation表中的電影參考 – Dalen 2011-04-30 22:22:56
而用戶表需要一個'id'字段,而不僅僅是'name',但除此之外你似乎需要'加入'所有三個表並給出一個合適的WHERE條款。 – 2011-04-30 22:23:37