簡體   English   中英

來自三個不同表的MySQL查詢

[英]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

現在,我想添加第三個表,並從表commentsvideo_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM