[英]How to merge two MySQL tables
區域表
view state region
EB1 TamilNadu Chennai-North
EB2 AndhraPradesh Guntur
國家表
view code country state
EB1 +91 India TamilNadu
EB2 +91 India AndhraPradesh
EB3 +91 India Delhi
EB4 +91 India Delhi
我想根據region
表中不存在的視圖合並這些表。
結果表必須如下所示:
view code country state
EB3 +91 India Delhi
EB4 +91 India Delhi
(其中EB1
, EB2
存在於region
表中)
你需要使用LEFT JOIN
。 您需要表region
不存在的值。 所以你需要使用WHERE r.view IS NULL
。 你的整個查詢應該是:
SELECT c.*
FROM country c
LEFT JOIN region r
ON c.view = r.view
WHERE r.view IS NULL
UPDATE
如果要創建名為result
的新表並希望在該表中添加這些值,可以使用以下查詢:
要創建新表:
CREATE TABLE result
(`view` varchar(3), `code` varchar(4)
, `country` varchar(5), `state` varchar(13))
;
在該表上插入值:
INSERT INTO result (`view`, `code`, `country`, `state`)
SELECT c.view, c.code, c.country, c.state
FROM country c
LEFT JOIN region r
ON c.view = r.view
WHERE r.view IS NULL
如果要創建新表:
CREATE TABLE new_table (
SELECT * FROM country
WHERE view NOT IN (
SELECT view FROM region
)
)
或者如果您只想創建視圖,請使用相同的查詢,將CREATE TABLE
替換為CREATE VIEW AS
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.