用于列出表中所有行的mysql命令?

3hvapo4f  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(176)

相关表格
书店(店号、店名、街道、城市、县)
订单(orderno、sno、odate、salesrep)
我需要列出只有一个订单的商店的所有细节

SELECT shopNo, shopName, street, city, county
    FROM bookShop
    WHERE shopNo in (SELECT sNo
                     FROM  orders
                     WHERE (count(sNo))<1)

我知道如果不使用groupby,我就不能使用聚合函数,但是我觉得这会使事情变得过于复杂,有没有更简单的方法呢?另外,是否有一个mysql命令来列出表中的所有细节,而不是像上面那样手动输入它们?谢谢

watbbzwu

watbbzwu1#

您需要在子查询中聚合:

SELECT shopNo, shopName, street, city, county
FROM bookShop
WHERE shopNo in (SELECT sNo
                 FROM orders
                 GROUP BY sNo
                 HAVING COUNT(sNo) = 1);
n3schb8v

n3schb8v2#

你能试试这个吗?

SELECT *
    FROM bookShop
    WHERE shopNo in (SELECT sNo
                     FROM  orders
                     GROUP BY sNo
                     HAVING count(sNo)=1)

我们使用“*”来表示所有列,而不是指定所有列名。我们必须使用groupby,因为在聚合函数“count”上需要一个条件值。
编辑:添加了op要求的实际情况。

相关问题