postgresql 对表格“t”的FROM子句条目的引用无效[已关闭]

rjee0c15  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(249)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
12天前关闭。
Improve this question
我用sql写了这个连接语句,并对所有内容进行了三重检查,尝试了多种方法,但似乎无法摆脱这个错误。--人才招聘团队正在寻找填补一些空缺职位。
他们希望您为他们获取没有任何员工的地区的territory_description和region_description,并按territory_id排序。
让我们一次解决一个问题。
为了得到这个结果集,我们需要将territors和regions表连接在一起,所以首先,选择territors表的territory_description列(别名为t)和regions表的region_description列(别名为r)。
为territors表编写一个FROM语句。在执行此操作时将其命名为't'。
然后,编写一个JOIN语句,连接regions表,将其别名为'r'。
此JOIN应该在territals和regions表中查找具有匹配值ON region_id的记录。
如果运行此时构造的查询,您应该会看到一个包含地区说明和相应区域说明的结果集。
但我们还没有完成!我们只希望记录的地区没有任何雇员。
在JOIN语句下面,编写WHERE语句以创建子查询。在WHERE中查找territis表中的territis_id不在从employee_territis表中选择territis_id的子查询的结果集中。
最后,获取最终结果集并按territory_id排序。

SELECT t.territory_description, r.region_description, t.region_id, r.region_id 
FROM territories t, regions r
JOIN regions
ON t.region_id = r.region_id
ERROR:  invalid reference to FROM-clause entry for table "t"
LINE 29: ON t.region_id = r.region_id
            ^
HINT:  There is an entry for table "t", but it cannot be referenced from this part of the query.
SQL state: 42P01
Character: 1524

我尝试过引用,从select语句中删除region id,甚至更改一些别名或在from语句中放置不同的表,但似乎都不起作用。

dsf9zpds

dsf9zpds1#

您的SQL查询结构不正确-您试图通过, regions r执行隐式JOIN,并通过JOIN regions执行显式JOIN。
下面是仅使用显式JOIN的查询的更正版本:

SELECT t.territory_description, r.region_description, t.region_id, r.region_id 
FROM territories t
JOIN regions r
ON t.region_id = r.region_id

相关问题