一个简单的内连接
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
有没有类似的简洁方法?
谢谢!
答案 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