合并两个表是什么意思?您想要两个表中的记录和列,还是一个表中的列和两个表中的记录?
无论哪种方式,您都只需要更改连接子句。
你可以在你想加入的列上做一个连接
SELECT DISTINCT *
FROM table1 tb1
JOIN table2 tb2
ON table1.id = table2.id
现在,如果您只想要 table1 中的列,请执行 LEFT JOIN
如果您只需要 table2 中的列,则使用 RIGHT JOIN
如果您想要两个表中的列,请按原样使用查询。
DISTINCT 确保在多行具有相同数据的情况下仅获得单行(但此 distinct 将检查行中所有列的值是否不同或相同)
如果两个表的列数不同,联合将无济于事。如果您不了解联接,请使用笛卡尔积
select distinct *
from table1 tb1, table2 tb2
where tb1.id = tb2.id
其中 id 是表之间共有的列。
在这里,如果您只想要 table1 中的列,请这样做
select distinct tb1.*
如果您只需要 table2 列,则在上述语句中将 tb1 替换为 tb2 类似。
select distinct tb2.*
如果你想要两者的列,只需写 '*'
在任何一种情况下,即如果您需要选择性列,只需编写一个表别名即可。例如。
考虑 :
table1 有 id, foo, bar 作为列
table2 有 id、name、roll no、age
您只需要选择查询结果中两个表的 id、foo、name
这样做:
select distinct tb1.id, tb1.foo, tb2.name
from table1 tb1
join table2 tb2
on tb1.id=tb2.id
笛卡尔积查询也是如此。 tb1, tb2 被称为表别名。
如果您想要两个表中的数据,即使它们没有任何共同之处,也可以这样做
select distinct *
from table1 , table2
请注意,这不能使用连接来实现,因为连接需要一个公共列来连接“on”