簡體   English   中英

如何將相同值的列連接到 SQL 中的另一個不同表?

[英]How to join a column of same values to another different table in SQL?

我有這個 names_table 的表結構:

名稱 年齡 性別
某人1 25 男性
某人2 25 女性

另一個表 names_with_company 具有以下結構:

公司編號 名稱 年齡 性別

現在,我想通過將單個值添加到 CompanyID 列來復制 names_table 中的數據。

預期結果:

公司編號 名稱 年齡 性別
1234 某人1 25 男性
1234 某人2 25 女性

我很困惑我應該包括什么。

INSERT INTO names_with_company 
'1234',SELECT * FROM names_table

或者

INSERT INTO names_with_company 
SELECT * FROM (
'1234'
UNION
SELECT * FROM names_table
)

這兩個不行

我知道這兩個表是兩種不同的結構,但是有沒有辦法在列中有一個 static 值,而另一個表中的數據有 rest?

另外,您能否不建議創建另一個表並加入它們? 我更喜歡使用上面的代碼行來完成它,但要有一個工作邏輯。

養成總是指定列名的習慣:

INSERT INTO names_with_company (CompanyID, Name, Age, Gender)
SELECT 1234, Name, Age, Gender
FROM names_table;

如您所見,您可以為任何列提供“文字”值。

您無法插入,因為您的第一個查詢

INSERT INTO names_with_company 
'1234',SELECT * FROM names_table

是完全錯誤的,但如果你像下面這樣寫

INSERT INTO names_with_company 
SELECT '1234',name,age,gender FROM names_table 

它會起作用,但最好明確提及@stu在另一個答案中給出的列名

您的第二個查詢也是聯合操作的錯誤原因您必須為所有選擇提供相同數量的列

INSERT INTO names_with_company 
SELECT * FROM (
'1234'
UNION
SELECT * FROM names_table
)

但你只使用了一個 select

聯合操作的寫入方法如下

select col1,col2 from table1
union

select col1,col2 from table2

然后你可以用任何其他方式使用它

暫無
暫無

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

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