2014-12-13 83 views
1

獲取數據我有3個表從3個數據庫表

  1. Users - 列id, userName, ...
  2. Comment - 列id, text, userId, roomId
  3. CommentRate - 列userId, commmentId

CommentRate表包含userId那就是喜歡這個由確定的評論。

我想roomId選擇從Comment表中的所有評論(id, text, roomId, userId, userName, []ListOfLikes)其中[]ListOfLikes應該包含userId, userName

+0

我不能讀你寫的東西,請格式化你的問題,並說清楚 – Ahmad 2014-12-13 18:05:21

+0

我可以選擇列表中的一列是列表嗎? – elgamal 2014-12-13 18:18:12

+0

不,你不能選擇哪一列的列,所有應該是值 – Ahmad 2014-12-13 18:28:02

回答

1

您可以使用別名在不同的連接標準中引用同一個表(在這種情況下爲USER)更多次,但不能在字段名中轉換值。該聲明將提取所有你需要的,但重複的行,並且不添加列:

SELECT C.ID, C.TEXT, C.ROOMID, U.USERNAME, U2.USERNAME 
FROM COMMENT C 
INNER JOIN COMMENTRATE CR ON C.ID = CR.COMMENTID 
INNER JOIN USERS U ON C.USERID = U.ID 
INNER JOIN USERS U2 ON CR.USERID = U2.ID 
WHERE U.USERNAME IN ('username1', 'username2') 
ORDER BY C.ROOMID 

如果你想,喜歡的用戶篩選,你可以在WHERE行的代碼替換U2U

+0

謝謝這是非常有用的 – elgamal 2014-12-14 07:35:12