BeN*_*ice 4 mysql sql alias join
我有两张桌子 - 客户和个人。它们personID在两个表中都被链接。
我正在尝试创建一个视图。
我试过:
SELECT * FROM client INNER JOIN person ON client.personID = person.personID
Run Code Online (Sandbox Code Playgroud)
它不喜欢它说Duplicate column name 'personID。
我想如果你使用table.column它作为标识符就好了。我试过有和没有单引号。
如果我想要特定的列 EG client.personID AS perID,我可以做一个别名,但是当它们是 JOIN 定义的一部分时,我无法弄清楚如何为这个位置 IE 的列创建别名。
我一直在寻找和尝试一个多小时,但找不到它。
编辑:这是一个关于在 SELECT * 连接中别名列的问题。每个人似乎都在说放在显式列中。我知道该怎么做。我特意想使用* JOIN 进行开发工作。这将是一个很小的数据库,所以它是否留在里面也没有关系。哦,这只是作为 VIEW 存储而不是作为 SQL 查询或一些代码存储的问题。
看起来您必须使用别名为列名添加别名。
SELECT client.column1 as col1, client.column2 as col2, person.column1 as colp1 FROM client INNER JOIN person ON client.personID = person.personID
Run Code Online (Sandbox Code Playgroud)
当然,将列名替换为真实的列名,因为使用更有吸引力的别名
让我们知道它是否有帮助
我尝试在 mySQL 5.5 和 5.6 中使用 sqlfiddle 创建 2 个表
见链接:http : //sqlfiddle.com/#!9/e70ab/1
它按预期工作。
也许你可以分享你的表架构。
这是示例代码:
CREATE TABLE Person
(
personID int,
name varchar(255)
);
CREATE TABLE Client
(
ID int,
name varchar(255),
personID int
);
insert into Person values(1, 'person1');
insert into Person values(2, 'person2');
insert into Person values(3, 'person3');
insert into Client values(1, 'client1', 1);
insert into Client values(2, 'client2', 1);
insert into Client values(3, 'client1', 1);
SELECT * FROM client
INNER JOIN person
ON client.personID = person.personID;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6379 次 |
| 最近记录: |