Mysql

使用兩個表的鍵加入

  • June 9, 2021

我嘗試以類似連接的方式將桌子放在一起。將列id_視為“on 子句”鍵。在下表中,表 1 中的 id_s 比表 2 多。我想要兩個表的所有 id 和值。如果沒有相應id_的 ,則值為 0 或 null。

CREATE TABLE IF NOT EXISTS t1 (
  id_ INTEGER  NOT NULL,
  value1 INT NOT NULL
)

CREATE TABLE IF NOT EXISTS t2 (
  id_ INTEGER  NOT NULL,
  value2 INT NOT NULL
)

INSERT INTO t1 (id_, value1) VALUES
(1, 10),
(2, 20),
(3, 30)

INSERT INTO t2 (id_, value2) VALUES
(2, 40),
(3, 60)
(4, 80)

我使用平台 Metabase,一個 BI 工具。

在 MySQL(不支持 FULL JOIN)中,您必須使用收集子查詢:

SELECT id_, t1.value1, t2.value2
FROM ( SELECT id_ FROM t1
      UNION 
      SELECT id_ FROM t2 ) total
LEFT JOIN t1 USING (id_)
LEFT JOIN t2 USING (id_);

引用自:https://dba.stackexchange.com/questions/290645