0

一个简单的内连接

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

有没有类似的简洁方法?

谢谢!

4

3 回答 3

2

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

   select *
     from table1 a
  natural join table2 b

不知道为什么问题标题包含“左”,但您也可以这样做natural left join

不幸的是,我确定您使用的是 SQL Server,因为dbo., 所以不,ON条件是必需的。

于 2012-11-08T19:33:45.913 回答
1

自然连接怎么样:

select *
from table1 a
natural join dbo.table2 b

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

我猜测dbo.您正在使用 SQL Server,但那里不支持它。请参阅此处了解更多信息。

编辑:
SQL Server 再次不支持另一种可能性,但值得注意。这实际上可能值得使用,因为您的连接条件已明确指定。更多信息在这里

select *
from table1
inner join dbo.table2 using (inventory_id)
于 2012-11-08T19:33:31.063 回答
0

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

select * from table1 a, table2 b
where a.inventory_id = b.inventory_id
于 2012-11-08T19:26:31.470 回答