Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
Mysql 一行有两个ID,另一行有firstname和lastname。如何从其他表接收firstname_Mysql_Sql_Join_Subquery - Fatal编程技术网

Mysql 一行有两个ID,另一行有firstname和lastname。如何从其他表接收firstname

Mysql 一行有两个ID,另一行有firstname和lastname。如何从其他表接收firstname,mysql,sql,join,subquery,Mysql,Sql,Join,Subquery,我想从一个月以来我一直在努力锻炼,希望你们能帮助我。我曾以多种方式尝试在from、with或join表中进行子查询,但没有收到正确的结果 嗯。表1中的一行存储以下信息: 客户ID firsname lastame 服务员id 表2中的一行存储以下信息: 用户ID(客户和服务员是用户) 名字 姓氏 我是SQL新手,但我的看法是: WITH waiter AS( SELECT waiter_id, firstname, lastname FROM Table1 J

我想从一个月以来我一直在努力锻炼,希望你们能帮助我。我曾以多种方式尝试在from、with或join表中进行子查询,但没有收到正确的结果

嗯。表1中的一行存储以下信息:

  • 客户ID
  • firsname
  • lastame
  • 服务员id
表2中的一行存储以下信息:

  • 用户ID(客户和服务员是用户)
  • 名字
  • 姓氏

我是SQL新手,但我的看法是:

WITH waiter AS(
  SELECT
   waiter_id,
   firstname,
   lastname
 FROM Table1
 JOIN Table2 ON Table1.waiter_id = Table2.user_id
 )
 SELECT
  client_id,
  firstname as Firstname_client,
  lastname as Lastname_client,
  waiter_id,
  waiter.firstname as Firstname_waiter,
  waiter.lastname as Lastname_waiter
 FROM Table1
 JOIN waiter ON Table1.waiter_id = waiter.waiter.id

如果有任何线索,我将不胜感激

您可以尝试此查询。只需使用别名并加入

TestDLL

CREATE TABLE Table1(
    client_id int,
    firstname varchar(50),
    lastname  varchar(50),
    waiter_id int
);
INSERT INTO Table1 values (1,'Andrew','x',5);
INSERT INTO Table1 values (2,'Chris','xx',6);
INSERT INTO Table1 values (3,'Anna','xxx',7);
INSERT INTO Table1 values (4,'Julia','xxxx',8);

CREATE TABLE Table2(
    user_id int,
    firstname varchar(50),
    lastname  varchar(50)
);

INSERT INTO Table2 values (1,'Andrew','x');
INSERT INTO Table2 values (2,'Chris','xx');
INSERT INTO Table2 values (3,'Anna','xxx');
INSERT INTO Table2 values (4,'Julia','xxxx');
INSERT INTO Table2 values (5,'Mat','xxxxx');
INSERT INTO Table2 values (6,'Kathy','xxxxxx');
INSERT INTO Table2 values (7,'Pual','xxxxxxx');
INSERT INTO Table2 values (8,'John','xxxxxxxx');
查询

SELECT t1.client_id ,
        t1.firstname AS Firstance_client,
        t1.lastname as Lastname_Client,
        t1.waiter_id,
        t2.firstname as  Firstname_waiter ,
        t2.lastname as Lastname_Waiter
FROM Table1 t1 
inner join Table2 t2 on t1.waiter_id = t2.user_id

[结果]

| client_id | Firstance_client | Lastname_Client | waiter_id | Firstname_waiter | Lastname_Waiter |
|-----------|------------------|-----------------|-----------|------------------|-----------------|
|         1 |           Andrew |               x |         5 |              Mat |           xxxxx |
|         2 |            Chris |              xx |         6 |            Kathy |          xxxxxx |
|         3 |             Anna |             xxx |         7 |             Pual |         xxxxxxx |
|         4 |            Julia |            xxxx |         8 |             John |        xxxxxxxx |

您可以使用下面的查询来获取第三个表

    Select ClientId, 
    c.FirstName as Client_FirstName, 
    c.LastName Client_LastName,
    w.FirstName as Waiter_FirstName, 
    w.LastName as Waiter_LastName, 
    w.UserId as WaiterId
    FROm dbo.Table1 as c
    LEFT JOIN dbo.Waiter as[enter image description here][1] w on c.WaiterId = w.UserId

您的数据库管理系统是什么?mysql或mssql或其他?它是mysql,在尝试查询时没有接收数据,但看起来数据库有问题。再次感谢大家的帮助!