簡體   English   中英

如何合並兩個列數不同的表SQL

[英]How to combine two tables with different number of columns SQL

我有兩個表 A 和 B,它們看起來像這樣:

表A

col1  col2  ID
--------------
 a     b    1
 c     d    2

表B

col3  col4  ID
--------------
 x     t    1
 y     u    1
 z     o    2
 m     n    2

我想創建這個新表:

表 C

col1 col2 col3  col4  ID
-------------------------
  a    b    x     t    1
  a    b    y     u    1
  c    d    z     o    2
  c    d    m     n    2

A 中的 ID 不是該列表中那些元素的唯一 ID。 我只需要在這個新表中從他們的“父”表(B)中添加更多的屬性。 我知道會有很多重復,但我現在不介意。

我嘗試了以下語句:

INSERT INTO C(SELECT A.*, B.col1, B.col2 from A LEFT OUTER JOIN B ON (B.ID = A.ID));

但它導致了我沒想到的事情。 C 的行數必須和 B 的行數相同。但是當我使用這個 SQL 查詢時,結果表的行數甚至超過了 A 和 B 的總行數。我是使用 SQL 的初學者我將不勝感激任何幫助。

一個基本的JOIN會做:

select
  a.col1,
  a.col2,
  b.col3,
  b.col4,
  a.id
from tablea a
join tableb b on a.id = b.id

如果我猜對了,你的桌子彼此之間沒有任何關系。 那么在這種情況下你應該能夠做這樣的事情嗎?

Select * from table1, table2

您也可以將其與插入相結合,這樣您就應該獲得新表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM