Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-确定某个客户是否已被现有客户推荐_Sql_Sqlite_Join_Self Join - Fatal编程技术网

SQLite-确定某个客户是否已被现有客户推荐

SQLite-确定某个客户是否已被现有客户推荐,sql,sqlite,join,self-join,Sql,Sqlite,Join,Self Join,我需要找出某个客户是否被现有客户推荐。 返回以下格式的结果“客户姓氏客户姓氏”“推荐新客户的客户姓氏” 以下是我的示例数据: CREATE TABLE customers ( customer_id int, last_name varchar(50), first_name varchar(50), referred_by_id varchar(50)); INSERT INTO customers (customer_id,last_name,fir

我需要找出某个客户是否被现有客户推荐。 返回以下格式的结果“客户姓氏客户姓氏”“推荐新客户的客户姓氏”

以下是我的示例数据:

CREATE TABLE customers (
    customer_id int,
    last_name varchar(50),
    first_name varchar(50),
    referred_by_id varchar(50));
    
INSERT INTO customers (customer_id,last_name,first_name, referred_by_id)
    VALUES (1,'John','White',''),
        (2,'Sarah','Green',''),
        (3,'George','Black',''),
        (4,'Mark','Koon',''),
        (5,'Tom','Gone',''),
        (6,'Ezra','Beck',''),
        (7,'Jan','Wick',2),
        (8,'Petr','Lame',''),
        (9,'Lucy','Can',''),
        (10,'Karl','Opel',1),
        (11,'Ron','Varon',10),
        (12,'Harry','Bond',''),
        (13,'Paul','Kong',''),
        (14,'Shaun','King',3),
        (15,'Elisabeth','Yellow','');
        
CREATE TABLE contacts (
    customer_id int,
    address varchar(255),
    city varchar(255),
    phone_number varchar(20),
    email VARCHAR(255));
    
    
INSERT INTO contacts (customer_id,address,city,phone_number,email)
    VALUES (1,'3525  Fort Street','COLUMBUS','2532326578','JW@email.com'),
        (2,'3924  Cooks Mine Road','Albuquerque','5057657670','SarahG@email.com'),
        (3,'925  College Street','Atlanta','4043278560','Georgie@email.com');

CREATE TABLE orders (
    customer_id int,
    order_id INT,
    item varchar(50),
    order_value DECIMAL(12,2),
    order_currency varchar(3),
    order_date TIMESTAMP);
 
INSERT INTO orders (customer_id,order_id,item,order_value,order_currency,order_date)
    VALUES(1,1,'HDMI cable',3.25,'EUR','2020-01-21 14:50:04'),
        (2,2,'Keyboard','15.99','EUR','2020-01-21 17:50:04'),
        (3,3,'Charger','9.99','EUR','2020-01-22 18:00:07'),
        (3,3,'Charger','9.99','EUR','2020-01-22 18:00:07'),
        (3,4,'Phone','225.89','EUR','2020-01-22 19:10:56'),
        (2,5,'Camera','199.99','EUR','2020-01-23 07:50:44'),
        (1,6,'Speakers','75.50','EUR','2020-01-23 08:40:00'),
        (1,6,'Speakers','75.50','EUR','2020-01-23 08:40:00'),
        (2,7,'Mouse','22.19','EUR','2020-01-23 09:20:59');    

您需要表
customers
的自联接:

SELECT c1.last_name || ' ' || c1.first_name customer_name,
       c2.last_name || ' ' || c2.first_name referred_by
FROM customers c1 INNER JOIN customers c2
ON c2.customer_id = c1.referred_by_id
请参阅。
结果(对于您发布的示例数据):


你试过什么?您如何定义“现有”客户?因此您可以看到一些客户已按id值引用了。此refered_by_id是推荐新客户的客户的id。现在我需要得到结果:“新”客户的名字和推荐他/她的客户的名字。@Adamooo我认为在您的示例数据中,您发布的姓氏应该是名字,反之亦然。是的,您是对的,这是一个错误。
> customer_name | referred_by 
> :------------ | :-----------
> Jan Wick      | Sarah Green 
> Karl Opel     | John White  
> Ron Varon     | Karl Opel   
> Shaun King    | George Black