mysql中3个表的内部连接

jhkqcmku  于 2022-12-17  发布在  Mysql
关注(0)|答案(1)|浏览(139)

表格说明:

  • 表a:id
  • 表b:标识、c_标识
  • 表c:标识

a.id 和b.id是相同的数据。
当我选择每一个时,它就起作用了。

-- Both work.

SELECT 
    *
FROM
    a
INNER JOIN
    b ON a.id = b.id
;

SELECT 
    *
FROM
    b
INNER JOIN
    c ON c.id = b.c_id
;

但当我这样做时,它不起作用。(返回0数据)

SELECT 
    *
FROM
    a
INNER JOIN
    b ON a.id = b.id
INNER JOIN
    c ON c.id = b.c_id
;

有什么问题吗?

kx5bkwkv

kx5bkwkv1#

我写的和你上面描述的一样。结果和预期的一样。请检查。

CREATE TABLE tempA(
id INT
);
INSERT INTO tempA(id) VALUES
(1),
(2);
CREATE TABLE tempB(
id INT,
c_id INT
);

INSERT INTO tempB(id,c_id) VALUES
(1,1),
(2,2);

CREATE TABLE tempC(
id INT
);

INSERT INTO tempC(id) VALUES
(1),
(2);

SELECT * FROM tempA;
SELECT * FROM tempB;
SELECT * FROM tempC;

SELECT 
    *
FROM
    tempA a
INNER JOIN
    tempB b ON a.id = b.id
INNER JOIN
    tempC c ON c.id = b.c_id;

DROP TABLE IF EXISTS tempA;
DROP TABLE IF EXISTS tempB;
DROP TABLE IF EXISTS tempC;

相关问题