如何使用“引用”列

时间:2014-07-09 01:42:38

标签: sql

这就是问题:

  

检索由其他客户引荐到书店的所有客户。列出每个客户的姓氏以及进行推荐的客户编号。 (引用栏)

这是我的疑问:

    select lastname, referred
       from customers
       order by referred;

但是此查询会返回没有推介的客户,即他们拥有推荐列(null),这意味着他们从未被其他客户推荐。如何构建查询,以便它只给出由另一个客户推荐的客户?

这里是输出的图像链接: http://i.imgur.com/oi8vhhZ.jpg

5 个答案:

答案 0 :(得分:1)

我想你可以试试这个

select lastname, referred from customers WHERE referred<>'';

答案 1 :(得分:0)

如果referred接受NULL值,则在WHERE referred IS NOT NULL子句后添加FROM

如果它不接受NULL值,则添加WHERE referred <> [value you take as meaning "not referred"]

答案 2 :(得分:0)

使其像

仅限空白

SELECT lastname, referred FROM customers WHERE referred != '' ORDER BY referred

仅限NULL

SELECT lastname, referred FROM customers WHERE referred IS NOT NULL ORDER BY referred

修改

对于空白和空白

SELECT lastname, referred FROM customers WHERE referred IS NOT NULL OR referred != '' ORDER BY referred;

答案 3 :(得分:0)

WHERE ... IS NOT NULL应该有效,所以:

SELECT lastname, 
       referred
  FROM customers
 WHERE referred IS NOT NULL;

答案 4 :(得分:0)

由于每个客户可以引用多个客户并且可以由多个客户推荐,因此这是一种n:m关系。应该有另一个表来管理这种关系。然后,您必须使用JOIN子句查询GROUP BY。可以通过聚合函数COUNT()检索引用者的数量。您应该提供完整的数据结构以获得详细的帮助。