【问题标题】:MYSQL column alias on select not working when using Count使用 Count 时选择上的 MYSQL 列别名不起作用
【发布时间】:2015-04-04 05:57:21
【问题描述】:

我必须在两个名为“plays”的连接表上使用相似的列,我想区分它们,但我得到“'field list' 中的未知列 'p.plays'”。我做错了什么?

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

图像。

表格:音乐

表格:播放

谢谢。

【问题讨论】:

  • 该列是否存在于表中?
  • @AmeyaDeshpande,plays 出现在“table”音乐和table“plays”中。
  • 你能和SQLFiddle分享你的架构和表吗
  • @AmeyaDeshpande 查看编辑。
  • 我在表 plays 中看不到列 plays。你的答案就在那里。

标签: mysql sql database inner-join alias


【解决方案1】:

根据您在编辑中提供的表格架构。您在 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

【讨论】:

  • 我不知道我在喝什么,哈哈,但这可以作为一个答案。我会接受的。
  • @Relm 哈哈!!!有时你必须从不同的角度看待它。可能是时候换饮料了:P
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多