嗨,伙计们,我是MySQL的新手,这可能是
问起来容易,但我对mysql来说是全新的。
我订了两张桌子,买了两张
桌子看起来像这样。。。。
秩序稳定。
order id:
ordername:
shopnum(fk)
购物中心*
shopname:
shopnum(pk):
我正在使用这样的子查询,以获取订单数量最多的商店名称。。。。
就像…19个xyzshop
. 13号hjjddshop
. 6锐步店
select shopname
from shopstable
where shopnum in
(select count(orderid) as highest ,shopnum
from orderTable
group by shopnum)
它抛出错误,显示列应该是1,这是因为子查询返回2个结果…所以我如何避免这种情况并获得适当的结果…将感谢帮助…:):)
最佳答案
这并不是抱怨,因为子查询只返回两列结果。但是,即使它只返回一列,它也将返回两个结果,主查询也将这样做。
在任何情况下都不需要子查询:
SELECT s.shopname
FROM Shopstable s
JOIN OrdersTable o ON s.shopnum=o.shopnum
GROUP BY s.shopname
ORDER BY count(*) DESC
LIMIT 1