[英]MySQL query from three different tables
我建立了工作的MySQL查詢:
SELECT
v.*, u.username
FROM
video AS v, users AS u
WHERE
v.type = 'public'
AND
v.user_ID = u.user_ID
現在,我想添加第三個表,並從表comments
中video_ID
count()
結果,其中該表中的video_ID
將與表video
中的video_ID
相等。
我試過了,但是沒有成功:
SELECT
v.*, u.username, count(c.video_ID)
FROM
video AS v, users AS u, comments AS c
WHERE
v.type = 'public'
AND
v.user_ID = u.user_ID
AND
v.video_ID = c.video_ID
作為回報,我想獲得與某些video_ID
相關的評論數。
我不明白如何在一個查詢中使其正常工作。
你能幫我嗎?
先感謝您,
伊利亞
如果在查詢中使用諸如COUNT
類的聚合函數,則需要使用GROUP BY
子句指定分組。
嘗試這個
SELECT
v.*,
u.username,
count(c.video_ID) AS comment_count
FROM
video AS v
INNER JOIN users AS u ON v.user_ID = u.user_ID
INNER JOIN comments AS c ON v.video_ID = c.video_ID
WHERE
v.type = 'public'
GROUP BY
v.id,
u.username,
v.v.add_time
ORDER BY
v.add_time
雖然MySQL允許您省略GROUP BY
子句的某些元素,但是最好指定它們。
連接兩個表時,最好使用INNER JOIN
語法,而不是WHERE
過濾器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.