SQL:只打印一次表中的名称

SQL:只打印一次表中的名称,sql,Sql,我试着列出下订单的客户姓名,他们来自某个县,并且从某个销售代表那里下了订单。问题是,最终的表格会多次打印出他们的姓名。我如何让他们每次只打印一次姓名 SELECT cName FROM customer INNER JOIN orders ON customer.cNo = orders.cNO,author WHERE county = "Galway" AND saleRepName = "Jane Smith"; 您可以使用Distinct,但如果记录太多,可能会影响性能 SELECT

我试着列出下订单的客户姓名,他们来自某个县,并且从某个销售代表那里下了订单。问题是,最终的表格会多次打印出他们的姓名。我如何让他们每次只打印一次姓名

SELECT cName
FROM customer INNER JOIN orders ON customer.cNo = orders.cNO,author
WHERE county = "Galway" AND saleRepName = "Jane Smith"; 

您可以使用
Distinct
,但如果记录太多,可能会影响性能

SELECT DISTINCT
    cName 
FROM customer 
    INNER JOIN orders ON customer.cNo = orders.cNO,author 
WHERE county = "Galway" AND saleRepName = "Jane Smith";
分组方式
可能会更快,还可以让您获得计数:

SELECT
    count(1),
    cName 
FROM customer 
    INNER JOIN orders ON customer.cNo = orders.cNO,author 
WHERE county = "Galway" AND saleRepName = "Jane Smith";
GROUP BY cName
这将打印出如下内容:

3 John Doe
6 Jane Smith
1 Jersey Mike

选择不同的cName…
您正在使用哪个DBMS?(
“Galway”
是指定字符串文字的非标准方式-SQL使用单引号表示字符串文字)如果是
count(cName)
,则无所谓<代码>计数(1),
计数(cName)
计数(*)
都将产生相同的输出。他使用的任何DBMS都足够聪明,可以对其进行优化。哈,不知道计数(1)