使用联接,从多个SQL表中选择没有外键的值

愚蠢的故事

我有包含两个表的数据库TeamUser每个团队可以有一个或两个用户。我希望选择该表的输出,Team以便User包括该表两个用户的信息定义表结构后,它会更容易理解。

Team

+-----------+-------------------+-------------------+-----------------+
| team_name |     user_one      |     user_two      |    team_note    |
+-----------+-------------------+-------------------+-----------------+
| Team one  | [email protected]   | [email protected]   | one to twenty   |
| Team two  | [email protected] |                   | three to thirty |
+-----------+-------------------+-------------------+-----------------+

User

+-------------------+-----------+-----------------+
|       email       | user_name |    user_note    |
+-------------------+-----------+-----------------+
| [email protected]   | skuhsaone |   gimme money   |
| [email protected]   | kgihse    |    drop it      |
| [email protected] | dsjgknsz  |   just eat it   |
+-------------------+-----------+-----------------+

我正在寻找的输出是这样的。

+-----------+--------------------+-----------+------------------+-----------+-----------------+
| team_name | user_one           | user_name | user_two         | user_name | team_note       |
+-----------+--------------------+-----------+------------------+-----------+-----------------+
| Team one  | [email protected]    | skuhsaone | [email protected]  | kgihse    | one to twenty   |
+-----------+--------------------+-----------+------------------+-----------+-----------------+
| Team two  | [email protected]  | dsjgknsz  |                  |           | three to thirty |
+-----------+--------------------+-----------+------------------+-----------+-----------------+

我感觉很容易做到,但是现在我正在尝试各种JOIN和东西,最后得到重复的结果或行。如果有任何PostgreSQL特定的方法可以做到这一点,那对我来说就很好。

SELECT * FROM Team LEFT JOIN User ON Team.user_one=User.email可以,但是如何仅选择所需的列?即,它将如何区分第一位和第二位用户的黑白列?

穆雷尼克

几个left joins应该可以解决这个问题:

SELECT    team_name, user_one, u1.user_name, user_two, u2.user_name, team_note
FROM      team t
LEFT JOIN user u1 ON t.user_one = u1.email
LEFT JOIN user u2 ON t.user_one = u2.email

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用联接,从多个SQL表中选择没有外键的值

来自分类Dev

选择数组值,如外键方式联接多个表

来自分类Dev

如何使用 sql 从内部联接查询中选择多个值?

来自分类Dev

如何从具有多个外键的多个表中选择sqlite结果

来自分类Dev

如何从具有多个外键的多个表中选择sqlite结果

来自分类Dev

我的SQL语句中选择带有外键的表有什么问题?

来自分类Dev

SQL外部联接具有引用同一张表的多个外键

来自分类Dev

sql与外键表联接

来自分类Dev

sql与外键表联接

来自分类Dev

具有多个外键的内部联接表

来自分类Dev

SQL从多个表中选择值

来自分类Dev

从没有联接条件的两个表中选择数据,t-sql

来自分类Dev

从没有联接条件的两个表中选择数据,t-sql

来自分类Dev

sql从没有内部联接的两个表中选择

来自分类Dev

从多个表中选择所有值

来自分类Dev

TSQL-从具有多个联接路径的表中选择

来自分类Dev

使用外键联接表

来自分类Dev

使用外键联接表

来自分类Dev

使用SQL中的2个外键从表中选择数据-无效的标识符

来自分类Dev

使用联接和计数从多个表中选择

来自分类Dev

如何从一个表中选择另一个表中没有外键的记录

来自分类Dev

MySQL从具有多个记录的多个表中从最高联接值中选择一个记录

来自分类Dev

使用联接仅显示没有匹配外键的记录

来自分类Dev

在没有公用键的情况下联接多个表

来自分类Dev

在没有公用键的情况下联接多个表

来自分类Dev

如何使用JPA从联接表中选择最小值?

来自分类Dev

用多个外键联接表

来自分类Dev

用相同的外键联接多个表

来自分类Dev

MySQL从2个表中选择而没有“共享”键

Related 相关文章

热门标签

归档