2015-04-04 55 views
-2

我必須在名稱爲「plays」的兩個連接表上的類似列,我想區分它們,但我得到「未知列'p.plays'在字段列表中「」。我做錯了什麼?MYSQL列別名上選擇不工作時使用計數

SELECT *, 
      p.plays AS pl, 
      m.plays AS mp, 
      COUNT(p.sid) frequency,  
FROM  music m 
      JOIN plays p 
      ON p.sid = m.sid 
      INNER JOIN users u 
      ON u.uid = m.uid 
      INNER JOIN downloads d 
      ON d.sid = m.sid   
WHERE  p.time > NOW() - INTERVAL 3 DAY 
      AND p.sid != '' 
      AND m.perms != 'c' 
GROUP  BY m.sid 
ORDER  BY frequency DESC 
      LIMIT 50 

圖片。

表:音樂

Music Table

表:播放

plays table

感謝。

+0

存在於表中的列? – 2015-04-04 06:00:59

+0

@AmeyaDeshpande,戲劇出現在「桌子」音樂和桌子「戲劇」中。 – Relm 2015-04-04 06:02:32

+0

您可以與'SQLFiddle'共享您的架構和表格嗎? – 2015-04-04 06:04:00

回答

0

根據您在編輯中提供的表格架構。你不要在plays表這就是有Plays列,爲什麼你收到此錯誤嘗試刪除該p.Plays

SELECT *, 

      m.plays AS mp, 
      COUNT(p.sid) frequency,  
FROM  music m 
      JOIN plays p 
      ON p.sid = m.sid 
      INNER JOIN users u 
      ON u.uid = m.uid 
      INNER JOIN downloads d 
      ON d.sid = m.sid   
WHERE  p.time > NOW() - INTERVAL 3 DAY 
      AND p.sid != '' 
      AND m.perms != 'c' 
GROUP  BY m.sid 
ORDER  BY frequency DESC 
      LIMIT 50 
+1

我不知道我在喝什麼,哈哈,但是這可以作爲答案。我會接受這個。 – Relm 2015-04-04 06:23:10

+0

@萊姆哈哈!!!有時你必須從不同的角度來看待它。可能是時候改變你的飲料:P – 2015-04-04 06:24:15