我在同一個數據庫中有兩個表。將兩個表合併爲一個並刪除重複項
我想根據常見的id
列合併它們。由於表格太大,我不確定是否有重複。
如何根據id
將這兩個表合併爲一個並確保沒有重複項?
SELECT *
FROM table1,table2
JOIN
GROUP BY id
我在同一個數據庫中有兩個表。將兩個表合併爲一個並刪除重複項
我想根據常見的id
列合併它們。由於表格太大,我不確定是否有重複。
如何根據id
將這兩個表合併爲一個並確保沒有重複項?
SELECT *
FROM table1,table2
JOIN
GROUP BY id
我不知道你到底要什麼,但無論如何,這是你的代碼
SELECT *
FROM table1,table2
JOIN
GROUP BY id
我只是編輯您查詢
SELECT *
FROM table1 JOIN table2
on table2.id = table1.id
GROUP BY table1.id // here you have to add table
//on which you will be group by at this moment this is table1
通過合併兩個表,你是什麼意思?你想要來自一個表和列的記錄和列以及來自兩者的記錄嗎? 無論哪種方式,您只需要更改連接子句。
你可以做,如果你只從表1進行左想列要
SELECT DISTINCT *
FROM table1 tb1
JOIN table2 tb2
ON table1.id = table2.id
現在就加入 如果你想列列的連接只從表2則右連接 如果你想來自兩個表的列都按原樣使用查詢。 如果存在具有相同數據的多個行,則DISTINCT可確保您只獲得一行(但是,不同的行將檢查行中所有列的值,無論它們是否不同或相同) 如果兩個表都有不同的列數。如果您不知道連接,則使用笛卡爾積
select distinct *
from table1 tb1, table2 tb2
where tb1.id = tb2.id
其中,id是表格之間通用的列。 在這裏,如果你想只從表1列做
select distinct tb1.*
同樣由TB2在上面的語句代替TB1如果你只是想表2列。
select distinct tb2.*
如果你想從兩者的cols只寫 '*'
在這兩種情況下,即如果你需要有選擇性的列只是寫一個表別名,那麼上面說的連接和產品就可以了。例如。 考慮: table1中有ID,FOO,酒吧欄目 表2有ID,名稱,卷沒有,年齡
你無論是在選擇查詢結果表 做到這一點只想要ID,FOO,名稱:
select distinct tb1.id, tb1.foo, tb2.name
from table1 tb1
join table2 tb2
on tb1.id=tb2.id
同樣適用於笛卡爾產品查詢。 tb1,tb2都是BTW,稱爲表別名。
如果你想從兩個表中的數據,即使他們沒有任何共同之處只是做
select distinct *
from table1 , table2
注意,這不能使用一個連接作爲連接需要公共列「開」攜手實現
只是一兩件事,我不認爲你查詢 SELECT * FROM 表1,表2 JOIN GROUP BY ID 會工作。 GROUP BY使用聚合函數,例如計數,總和,最大值,最小值等。 通過emp_sal,emp_age從員工 組中選擇計數(emp_name),emp_sal,emp_age ; 這裏不適用。因此group by不能被使用。改用連接 – Proxima
它們是否具有相同的結構?如果是這樣,請使用'UNION'。 –
@ PM77-1沒有人有4列和其他12 – angs
那麼你究竟是什麼意思的「*合併*」?請提供一些示例數據和期望的結果。 –