我在同一个数据库中有两个表。将两个表合并为一个并删除重复项
我想根据常见的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
那么你究竟是什么意思的“*合并*”?请提供一些示例数据和期望的结果。 –