SQLite:尝试从两个 select 语句的连接创建新的 table 时找不到 Table 别名
SQLite: Table alias not found when trying to create a new table from a join of two select statements
我希望这个标题有意义,我对编写查询还很陌生,对条款等不太了解。
我需要一些帮助来理解为什么在以下查询中找不到我的 table 别名。当我 运行 它在没有 ON 子句的情况下执行时(在 Firefox 上的 SQLite Manager 上)但是有子句时,我得到错误 'no such column t2.story_id'
注意 - 我正在使用我创建的一些虚拟查询来简化问题。我的最终查询的结构将完全相同,因此如果您发现任何错误或我可以改进的地方,请分享。如果有人想知道为什么这两个语句是从同一个 table 中提取的,那是因为我需要加入两个从同一个 table 中提取的语句,但要执行无法完成的非常具体的事情同时。至少有人告诉我这是这样做的方法哈哈。
SELECT * FROM
(
SELECT * FROM
(
SELECT story_id, role_type, user_id
FROM cur_cycle_role_activity
) t1 /* end of the first inner select statement t1 */
LEFT JOIN /* Begin Join Statement */
(
SELECT * FROM
(
SELECT story_id, workstream_num FROM cur_cycle_role_activity
) t2 /* end of the second inner select statement t2 */
) /* End Join */
ON t1.story_id = t2.story_id /* On clause for Join above */
) /* This is the end of the topmost select statement */
错误信息:
[ no such column: t2.story_id ]
将查询包装在 SELECT * FROM (...)
中是导致问题的原因,因为您不能在子查询中引用别名。
SELECT t1.story_id, t1.role_type, t1.user_id, t2.workstream_num
FROM (
SELECT story_id, role_type, user_id
FROM cur_cycle_role_activity) AS t1
LEFT JOIN (
SELECT story_id, workstream_num
FROM cur_cycle_role_activity) AS t2
ON t1.story_id = t2.story_id
我希望这个标题有意义,我对编写查询还很陌生,对条款等不太了解。
我需要一些帮助来理解为什么在以下查询中找不到我的 table 别名。当我 运行 它在没有 ON 子句的情况下执行时(在 Firefox 上的 SQLite Manager 上)但是有子句时,我得到错误 'no such column t2.story_id'
注意 - 我正在使用我创建的一些虚拟查询来简化问题。我的最终查询的结构将完全相同,因此如果您发现任何错误或我可以改进的地方,请分享。如果有人想知道为什么这两个语句是从同一个 table 中提取的,那是因为我需要加入两个从同一个 table 中提取的语句,但要执行无法完成的非常具体的事情同时。至少有人告诉我这是这样做的方法哈哈。
SELECT * FROM
(
SELECT * FROM
(
SELECT story_id, role_type, user_id
FROM cur_cycle_role_activity
) t1 /* end of the first inner select statement t1 */
LEFT JOIN /* Begin Join Statement */
(
SELECT * FROM
(
SELECT story_id, workstream_num FROM cur_cycle_role_activity
) t2 /* end of the second inner select statement t2 */
) /* End Join */
ON t1.story_id = t2.story_id /* On clause for Join above */
) /* This is the end of the topmost select statement */
错误信息:
[ no such column: t2.story_id ]
将查询包装在 SELECT * FROM (...)
中是导致问题的原因,因为您不能在子查询中引用别名。
SELECT t1.story_id, t1.role_type, t1.user_id, t2.workstream_num
FROM (
SELECT story_id, role_type, user_id
FROM cur_cycle_role_activity) AS t1
LEFT JOIN (
SELECT story_id, workstream_num
FROM cur_cycle_role_activity) AS t2
ON t1.story_id = t2.story_id