查询以显示经常拍摄的图书的图书代码,出版物,价格和供应商名称。
上面的问题我使用了这个查询,但它返回错误。
select b1.book_code,b2.publication,b2.price,b3.supplier_name
from BOOK_ISSUE b1
join BOOK_DETAILS b2 on b1.BOOK_CODE=b2.BOOK_CODE
join SUPPLIERS_DETAILS b3 on b2.SUPPLIER_ID=b3.SUPPLIER_ID
group by b1.BOOK_CODE
having COUNT(b1.book_code)>1
查询说明是: table1:book_issue table2:book_details table3:supplieer_details
以上查询目的是要显示经常拍摄的书籍。我试过但有一些。
如何更正sql语句?
答案 0 :(得分:0)
我无法根据问题确切地说出来,但它可以很简单:
select b1.book_code,b2.publication,b2.price,b3.supplier_name
from BOOK_ISSUE b1
join BOOK_DETAILS b2 on b1.BOOK_CODE=b2.BOOK_CODE
join SUPPLIERS_DETAILS b3 on b2.SUPPLIER_ID=b3.SUPPLIER_ID
group by b1.book_code,b2.publication,b2.price,b3.supplier_name
having COUNT(*)>1
答案 1 :(得分:0)
问题是你不能在没有聚合函数的情况下使用不属于SELECT
的{{1}}子句中的列,因为RDMBS无法告诉你组中的哪一行意思是选择。
根据您的预期结果,有几种方法可以处理它:
GROUP BY
子句GROUP BY
,MIN()
... MAX()
返回如果没有看到表格结构,样本数据和所需的输出,很难说,但你可以尝试
JOIN