当前位置: 首页 > 知识库问答 >
问题:

sqlite中的表别名而不是mysql中的表别名

燕照
2023-03-14

我已经将完全相同的数据库表从MYSQL移到SQLite。以下查询在MYSQL中工作

select castkey, frname, lname, rolename from patrons, cast 
WHERE (patrons.personkey=cast.personkey) and cast.showkey=8 
order by cast.roletype, sex desc

但在SQLITE中,我得到一个“Error near'”。语法错误。使用cast到c的表别名,查询工作良好:

select castkey, frname, lname, rolename from patrons, cast as c
WHERE (patrons.personkey=c.personkey) and c.showkey=8 
order by c.roletype, sex desc

Sqlite不喜欢查询的第一个版本的原因是什么?

共有2个答案

常业
2023-03-14

您可以在SQLite关键字列表中找到cast
虽然SQLite允许将大多数关键字用作标识符,但您应该避免使用这些关键字,或者如果使用这些关键字,则将它们括在后勾、方括号或双引号中。
这样做可以:

select castkey, frname, lname, rolename 
from patrons, cast 
where (patrons.personkey=`cast`.personkey) and `cast`.showkey=8 
order by `cast`.roletype, sex desc

但还应使用适当的联接语法:

select castkey, frname, lname, rolename 
from patrons join cast 
on (patrons.personkey=`cast`.personkey) 
where `cast`.showkey=8 
order by `cast`.roletype, sex desc
狄德泽
2023-03-14

您使用的是旧的逗号连接语法。(1992年被取代)。

试试这个

select castkey, frname, lname, rolename 
  FROM patrons
  JOIN cast ON patrons.personkey=cast.personkey
 WHERE cast.showkey=8 
 ORDER BY cast.roletype, sex desc

你的别名情况应该会好起来的。

 类似资料:
  • 问题内容: 我得到错误 我不知道这是怎么回事。 问题答案: 尝试

  • 问题内容: 我有一个SQL查询,该查询两次引用同一张表,因此我需要将该表别名为两个单独的别名。我不太清楚如何与Knex一起编写。 有一个“单词”表和一个“用户”表。Words表具有两个外键,即“ author_id”和“ winner_id”,引用了Users表的“ id”列。 这是我要在Knex中编写的SQL: 我对如何在Knex中做到这一点有些迷惑。我的第一次尝试不涉及别名,因此出现了“表使用

  • 本文向大家介绍MySQL中使用表别名与字段别名的基本教程,包括了MySQL中使用表别名与字段别名的基本教程的使用技巧和注意事项,需要的朋友参考一下 MySQL 表别名(Alias) SQL 表别名 在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Alias),别名是 SQL 标准语法,几乎所有的数据库系统都支持。通过关键字 AS 来指定。 表别名语法: 上述 SQL 执行后的效果,给人感

  • 问题内容: 你能帮我一下吗?我有这个SQL查询: 它以某种方式说 问题答案: 您似乎从同一张表中选择了两次。这些事件中的每一个都需要有自己的别名: 请注意,我还为该表添加了缺少的别名。

  • 问题内容: SQLite如何在内部处理别名? 创建表名别名是在内部创建同一表的副本还是仅引用同一表而不创建副本? 当我在代码中创建同一表的多个别名时,查询性能会受到严重影响! 在我的情况下,我有一个表,将其称为MainTable,即2列,即名称和值。我想在一行中选择多个值作为不同的列。例如 名称:a,b,c,d,e,f 值:p,q,r,s,t,u ,使得a对应于p,依此类推。 我想在一行中选择名称

  • 问题内容: 这个问题已经在这里有了答案 : SQLite删除查询错误 (3个答案) 7年前关闭。 我试图通过以下命令对SQLite中的表进行别名化(例如,这本书是我正在阅读“ Ramakrishnan的数据库管理系统”的书) 此代码给出了语法错误。在不使用别名的情况下,以下代码有效: 但是,如果我想为表加上别名,该怎么办?有人可以帮忙吗? 谢谢 问题答案: 该语句在单个表上运行,并且不使用表别名。