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

3

我在处理SQL时遇到了问题。我想要从两个不同的表中获取具有相同主键的不同记录,这些表的列数不同。

我已经尝试使用"EXCEPT"和"MINUS",但是由于这两个表的列数不同,所以我收到了错误提示。

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

谢谢, Min


怎么样使用JOINs?http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ 你能展示一下你的代码吗? - Erran Morad
使用内连接。http://dev.mysql.com/doc/refman/5.0/en/join.html - Ronak Shah
3个回答

2
您可以使用INNER JOIN,例如:
SELECT table1.column1, table2.column3
FROM table1 INNER JOIN table2
ON table1.column1=table2.column1;

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

希望能对你有所帮助,


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接