Sql 如何编写此select语句?

Sql 如何编写此select语句?,sql,database,postgresql,Sql,Database,Postgresql,如果我有table1包含姓名、col2、col3和table2包含姓名、昵称和col6 我想执行select语句,这样我就有了一个如下表: Name, NickName, col2, col3 如果表1有3行,则新表应具有相同的行。更新以回答您的问题: 试试这个: WITH tbl2 AS (SELECT DISTINCT ON (Name) Name,Nickname FROM table2 ORDER BY Name) SELECT tbl1.Name, tbl2.Nickname, t

如果我有
table1
包含
姓名、col2、col3
table2
包含
姓名、昵称和col6

我想执行select语句,这样我就有了一个如下表:

Name, NickName, col2, col3

如果
表1
有3行,则新表应具有相同的行。

更新以回答您的问题:

试试这个:

WITH tbl2 AS (SELECT DISTINCT ON (Name) Name,Nickname FROM table2 ORDER BY Name)

SELECT tbl1.Name, tbl2.Nickname, tbl1.col2, tbl1.col3 FROM
table1 tbl1 INNER JOIN tbl2 ON tbl1.Name = tbl2.Name

免责声明:我还没有测试过这个。让我知道它是否有效。

我想你的意思是
上,而不是
在哪里
?另外,假设您在
table1
中有1行,在
table2
中有4行,那么当满足条件
table1.Name=table2.Name
时,您将获得多行。那么您如何知道从表2中选择哪条记录呢?!你只想要第一场比赛吗?这可能会引起有趣的行为。