嗨,伙计们,我是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

10-07 15:38