这个左连接有没有简洁的方法?

时间:2012-11-08 19:20:41

标签: sql

一个简单的内连接

select * from table1 a
inner join 
dbo.table2 b
on a.inventory_id = b.inventory_id

这样说它不是很好吗和直觉吗?

select * from table1 a
inner join 
dbo.table2 b
on inventory_id

有没有类似的简洁方法?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您使用的是PostgreSQL,MySQL或Oracle,则可以使用Natural Join

   select *
     from table1 a
  natural join table2 b

不确定为什么问题标题包含“left”,但您也可以执行natural left join

不幸的是,由于dbo.,我确定您使用的是SQL Server,所以不需要ON条件。

答案 1 :(得分:1)

自然加入怎么样:

select *
from table1 a
natural join dbo.table2 b

但是,您的RDBMS可能不支持它,我建议您始终在查询中指定连接类型和条件。从长远来看,它更易于维护。

我猜你正在使用dbo.你正在使用SQL Server,并且它在那里不受支持。有关详细信息,请参阅here

修改
还有另一种可能性,SQL Server再次不支持,但值得注意。这实际上值得使用,因为您明确指定了连接条件。更多信息here

select *
from table1
inner join dbo.table2 using (inventory_id)

答案 2 :(得分:0)

如果您不想使用ANSI标准JOIN,请使用隐式语法:

select * from table1 a, table2 b
where a.inventory_id = b.inventory_id