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

时间:2018-11-12 13:38:41

标签: mysql command subquery

相关表格

bookShop(商店编号,商店名称,街道,城市,县)

订单(orderNo,sNo,oDate,salesRep)

我需要列出只有一个订单的商店的所有详细信息

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

我知道不使用group by不能使用聚合函数,但是我觉得这样做会使事情变得更加复杂吗?另外,是否有我的SQL命令用于列出表中的所有详细信息,而不是像我上面那样手动输入所有详细信息?谢谢

2 个答案:

答案 0 :(得分:0)

您需要在子查询中进行汇总:

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

答案 1 :(得分:0)

你可以试试吗?

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

我们使用“ *”表示所有列,而不是指定所有列名。 我们必须使用GROUP BY,因为您需要聚合函数“ COUNT”上的条件值。

编辑:添加了OP询问的实际条件。