操作数应包含1列

时间:2015-03-15 22:05:33

标签: php sql admin operand

所以我试着写一个SQL语句如下......

  

我需要查找艺术家姓名列表,他们拥有的CD数量   制作,以及他们的CD的平均价格。只返回结果   对于有多张CD的艺术家。

问题是每次我认为我得到它我得到一个错误阅读"操作数应该包含1列"我感觉好像我现在非常密集但是如果有人可以帮助我非常感激。

这是我上次尝试的代码..

SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=(SELECT CD.artID, AVG(CD.cdPrice), COUNT(*)
                 as Count FROM CD GROUP BY CD.artID HAVING Count > 1)

2 个答案:

答案 0 :(得分:0)

您的联接在右侧有三列 所以你可以使用像

这样的东西
SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=(SELECT CD.artID
                 FROM CD 
                 GROUP BY CD.artID 
                 HAVING Count(*) > 1)
Group by Artist.artID, CD.cdPrice

<强> ALTERNATIVE

SELECT Artist.artID, CD.cdPrice, Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=CD.artID
Group by Artist.artID, CD.cdPrice

ALTERNATIVE 2

SELECT Artist.artID, AVG(CD.cdPrice), Count(*)
FROM CD
INNER JOIN Artist
ON Artist.artID=CD.artID
Group by Artist.artID
Having count(*) >1

答案 1 :(得分:0)

你说WHERE artID= three columns这就是问题