gpt4 book ai didi

mysql - 两个右连接

转载 作者:行者123 更新时间:2023-11-29 21:05:12 25 4
gpt4 key购买 nike

我尝试使用右连接选择 TABLEC 中的所有记录及其在 TABLEA 或 TABLEB 中的等效值。我使用的是 MYSQL 5.5.47。

--表格数据如下

TABLEA          TABLEB      TABLEC  
ID FNAME ID MNAME ID LNAME
0 ANOOP 0 N 0 SINGH
1 BIMA 2 SITA 3 RAJ
4 CIMI 4 B 5 KUMAR
6 RAVI 5 A 6 D

--使用下面的查询并尝试选择 TABLEC 中的所有记录及其在 TABLEA 或 TABLEB 中的等效值

 SELECT A.FNAME, B.MNAME, C.LNAME
FROM TABLEA AS A
RIGHT JOIN TABLEB AS B ON A.ID = B.ID
RIGHT JOIN TABLEC AS C ON C.ID = B.ID

--我得到以下结果

ANOOP           N       SINGH                   
NULL NULL RAJ
NULL A KUMAR
***NULL*** NULL D

突出显示的值在 MYSQL 5.5.47 中不显示为“RAVI”,而是显示 NULL。我尝试修改与 C & A 相关的第二个连接中的“=”条件,但仍然没有成功。我在这里做错了什么?如何获取值“RAVI”来代替 NULL?任何建议都会非常有帮助。

最佳答案

DROP TABLE IF EXISTS table_a;
DROP TABLE IF EXISTS table_b;
DROP TABLE IF EXISTS table_c;

CREATE TABLE table_a
(id INT NOT NULL PRIMARY KEY
,fname VARCHAR(12) NULL
);

INSERT INTO table_a VALUES
(0,'ANOOP'),
(1,'BIMA'),
(4,'CIMI'),
(6,'RAVI');

CREATE TABLE table_b
(id INT NOT NULL PRIMARY KEY
,mname VARCHAR(12) NULL
);

INSERT INTO table_b VALUES
(0,'N'),
(2,'SITA'),
(4,'B'),
(5,'A');

CREATE TABLE table_c
(id INT NOT NULL PRIMARY KEY
,lname VARCHAR(12) NULL
);

INSERT INTO table_c VALUES
(0,'SINGH'),
(3,'RAJ'),
(5,'KUMAR'),
(6,'D');

SELECT a.fname
, b.mname
, c.lname
FROM table_c c
LEFT
JOIN table_a a
ON a.id = c.id
LEFT
JOIN table_b b
ON b.id = c.id;
+-------+-------+-------+
| fname | mname | lname |
+-------+-------+-------+
| ANOOP | N | SINGH |
| NULL | NULL | RAJ |
| NULL | A | KUMAR |
| RAVI | NULL | D |
+-------+-------+-------+
4 rows in set (0.02 sec)

关于mysql - 两个右连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com