我碰巧有两列与两个 SQL 保留字 Key 和 Value 同名。使用 SELECT 语句时,我可以创建一个表别名并以这种方式解决它。
现在我正在尝试插入数据,但似乎无法在 INSERT 语句中创建表别名。
INSERT INTO attributeStrings ats
(ats.ItemID,ats.Key,ats.Value)
VALUES (3,'Categories','TechGUI')
Run Code Online (Sandbox Code Playgroud)
我收到错误'ats (ats.ItemID,ats.Key,ats.Value) VALUES (3,'Categories','TechGUI')'提示无法创建别名。
有没有办法在不重命名列键和值的情况下解决这个问题?
我想知道为什么当我使用MySQL Query Browser并双击表名时,sql语句如下所示:
SELECT * FROM database.table t;
Run Code Online (Sandbox Code Playgroud)
其中t =表格的第一个字母......这封信的目的是什么?我只是好奇
我试图运行以下更新,但运行到"表是模糊的"错误.
UPDATE dbo.cg
SET cg.column = gId.ID
FROM dbo.a
INNER JOIN dbo.cg as cId ON cId.[a] = dbo.a.[c]
INNER JOIN dbo.cg as gId ON gId.[a] = dbo.a.[b];
Run Code Online (Sandbox Code Playgroud)
表dbo.a包含用于根据与同一表的关系更新cg中的值与不同列中的值的数据.它是一个自引用层次结构.
正如你所看到的,一切都是别名的,所以我有点困惑为什么这不会运行.
非常感谢您提供的任何帮助.
我已将代码点火器配置为使用db前缀.
在所有其他地方,它按预期工作,但在创建表别名时,它是前缀db前缀.
代码如下: -
$this->db->from('table_a');
$this->db->join('table_b', 'table_a.id = table_b.a_id', 'left');
-----
$this->db->join('table_b as tablebAlias', 'table_c.id = tablebAlias.a_id', 'left');
Run Code Online (Sandbox Code Playgroud)
假设我的dbprefix设置为值'foo'.
正在执行的最终查询如下: -
Select * From foo_table_a left join foo_table_b on foo_table_a.id = foo_table_b.a_id
--- left join foo_table_b as tablebAlias on foo_table_c.id = foo_tablebAlias.a_id
Run Code Online (Sandbox Code Playgroud)
任何帮助都会非常值得一提.
谢谢,贾丁
例如......
SELECT *
FROM ( SELECT RANK() OVER (ORDER BY stud_mark DESC) AS ranking,
stud_id,
stud_name,
stud_mark
FROM tbl_student ) AS foo
WHERE ranking = 10
Run Code Online (Sandbox Code Playgroud)
这里foo有......实际上它是做什么的?
为什么我不能为Oracle DB中的表提供别名?我试着写一个像这样的声明:
select count(id) from users as usr where usr.dept = "SVC";
Run Code Online (Sandbox Code Playgroud)
但甲骨文给我一个错误.当我在MySQL中使用类似的东西时,我不记得有问题.
如何为Oracle中的表提供别名?
table-alias ×6
sql ×5
mysql ×2
codeigniter ×1
database ×1
insert ×1
oracle ×1
prefix ×1
sql-server ×1
sql-update ×1
t-sql ×1