连接两个表而不根据连接条件过滤数据
Posted
技术标签:
【中文标题】连接两个表而不根据连接条件过滤数据【英文标题】:Joining two tables without filtering the data on the basis of joining condition 【发布时间】:2017-11-30 14:05:57 【问题描述】:我有两个表 Table1 和 Table2
表 1:
ID1 | C1 | C2 | C3
1 | a | b | c
2 | d | e | f
3 | g | h | i
表 2:
ID2 | C4 | C5 | C6
2 | k | l | m
我想加入表一和表二得到如下结果:
ID1 | C1 | C2 | C3 | C4 | C5 | C6
1 | a | b | c | - | - | -
2 | d | e | f | k | l | m
3 | g | h | i | - | - | -
这两个表在条件ID1=ID2
下被连接,当这个条件不成立时,表2 中的其余列应自动为null
。结果中的总列数应始终等于表 1 中的列数。表1中的ID是表2中ID的超集。我应该使用什么样的join和join条件?
【问题讨论】:
你应该使用LEFT JOIN ON ID1=ID2
。
您可以在这里花一点时间。 blog.codinghorror.com/a-visual-explanation-of-sql-joins
【参考方案1】:
假设首先使用第一个表的左外连接。上面的 SQL 语法是:
SELECT *
FROM Table1
LEFT JOIN Table2 On Table1.ID1=Table2.ID2
【讨论】:
以上是关于连接两个表而不根据连接条件过滤数据的主要内容,如果未能解决你的问题,请参考以下文章