【发布时间】:2022-07-06 22:56:39
【问题描述】:
假设我有 3 张桌子。
table_1
| id | fk_table_2 | fk_table_3 |
|---|---|---|
| 1 | 1 | 1 |
table_2
| id | name |
|---|---|
| 1. | "foo" |
table_3
| id | name |
|---|---|
| 1 | "bar" |
我想查询table_1 中的一行,但不是返回fk_table_2 和fk_table_3,有没有办法返回与各自表中的行关联的name,无需单独选择字段。
应该返回如下内容:
| id | fk_table_2 | fk_table_3 |
|---|---|---|
| 1 | "foo" | "bar" |
目前我有这个:
SELECT * FROM ((table_1
INNER JOIN table_2
ON table_1.fk = table_2.id) AS j
INNER JOIN table_3
ON table_3.id = j.fk_table_3);
返回我需要的所有数据,但结构不正确。 任何人都可以帮忙吗?谢谢。
【问题讨论】:
-
不要使用
SELECT *,只需选择您希望在SELECT语句中显示的列。 -
不相关,但是:查询中的所有括号完全没用
-
SELECT table_1.id, table_2.name, table_3.name from ....insted ofSELECT * from ... -
重要部分:无需单独选择字段
标签: sql postgresql