如何使用sql从具有不同列的两个表中获取不同的记录

时间:2014-04-21 05:12:04

标签: mysql sql sql-server sqlite

我遇到了SQL问题。我想从两个具有不同列数的不同表中获取不同的记录,这些列具有相同的主键。 我尝试过“EXCEPT”和“MINUS”,但由于这两个表的列数不同,我收到了错误。

我是否可以使用其他sql命令来获取我想要的记录?

谢谢, 分钟

3 个答案:

答案 0 :(得分:2)

您可以使用INNER JOIN赞:

SELECT table1.column1, table2.column3
FROM table1 INNER JOIN table2
ON table1.column1=table2.column1;

答案 1 :(得分:0)

试试这个:

SELECT t1.table1column1, t1.table1column2, t1.table1column3, t2.table2column1, t2.table2column2, t2.table2column3 FROM table1 t1 JOIN table2 t2 ON t1.table1column1 = t2.table2column1

答案 2 :(得分:0)

具有等于NULL条件的键列的FULL OUTER JOIN可以帮助您解决问题。 以下是SELECT语句示例

/*
create table Tab1(id int, col1 varchar(10))
create table Tab2(id int, col2 varchar(10), col3 int)

insert into tab1 select 1,'Kodyaz'
insert into tab1 select 2,'Vader'
insert into tab2 select 2,'Star Wars', 6
insert into tab2 select 3,'SQL', 2014
*/
select * 
from tab1
full outer join tab2 on tab1.id = tab2.id
where 
tab1.id is null
or tab2.id is null

我希望它有所帮助,