gpt4 book ai didi

mysql - SQL 连接查询问题

转载 作者:行者123 更新时间:2023-12-01 00:18:23 25 4
gpt4 key购买 nike

这是我的查询的简化版本。它在 SQLite 中运行没有问题,但在 MYSQL 中则不然。

错误:“on 子句”中的未知列“tab2.key”

SELECT 
tab2.key AS remarksId,
tab1.sessionDate AS date,
tab1.sessionStart AS startTime
FROM
table1 AS tab1,
table2 AS tab2,
table3 AS tab3,
table4 AS tab4
INNER JOIN
table5 AS tab5
ON
tab5.remarkId = tab2.key
WHERE
tab1.userId='<anyNumber>' AND
tab2.objectiveId='<anyKey>' AND
tab1.reportId=tab2.reportId AND
tab1.reportId=tab3.key AND
tab4.key=tab3.sortieId
ORDER BY date, startTime;

不幸的是,将列放在 ` 中没有帮助。

我不确定将列命名为“键”是否是一个好习惯 (MYSQL Keywords),但由于现有安装,我必须以某种方式处理这个问题。为了进行快速测试,我重命名了“key”列,但也没有成功。

非常感谢

最佳答案

简单地说,不要混合连接符号,如果可以选择使用当前的 ANSI 92 连接语法而不是 89 标准(是的......那是 1992 年和 1989 年!)

其次...别名是为了帮助您节省输入并处理对同一个表的多个引用...所以...简化名称 t1、t2、t3...

最后...如果您必须在 mySQL 中使用保留/限制字,请使用反引号。

SELECT t2.`key` AS remarksId 
FROM table1 t1
INNER JOIN table2 t2
ON t1.reportId = t2.reportId
INNER JOIN table3 t3
ON t1.reportId = t3.`key`
INNER JOIN table4 t4
ON t4.`key` = t3.sortieId
INNER JOIN table5 t5
ON t5.remarkId = t2.`key`
WHERE t1.userId = '<anyNumber>'
AND t2.objectiveId = '<anyKey>'
ORDER BY `date`, startTime;

关于mysql - SQL 连接查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44052881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com