mysql 是否可以在内部联接期间重命名联接列?

kr98yfug  于 2023-01-25  发布在  Mysql
关注(0)|答案(6)|浏览(130)

假设我有两个表,ownerdog,它们都有列name,但是我想连接它们,所以出现了一个问题,因为两个表都有列name,我可以在查询过程中重命名(别名)dog表中的name列吗?

idv4meu8

idv4meu81#

select d.Name as DogName, o.Name
from Dog d
inner join Owner o on d.OwnerID = o.OwnerID
7qhs6swi

7qhs6swi2#

是的,可以,但是必须列出所有字段,而不是使用select *

select o.*, d.*
      from owner o
inner join (select dog_id, name as dog_name, breed, age, owner_id from dog) d
    on o.owner_id = d.owner_id
watbbzwu

watbbzwu3#

这是可能的,非常简单,做你的SQL正常,并添加一个逗号后的星号和使用'AS'。
之前:
选择 * 来自所有者
INNER JOIN狗
在www.example.com上= owner.id = dog.id
之后:
选择 *,www.example.com作为狗名称来自所有者dog.name AS dogName FROM owner
INNER JOIN狗
在www.example.com上= owner.id = dog.id

vktxenjb

vktxenjb4#

是的,您可以重命名联接输出中的列,这称为别名。但是,它们相同的事实不会导致任何问题;他们只需要完全合格。

shyt4zoc

shyt4zoc5#

您可以为列给予任何别名,但有一些规则,如别名不能是SQL Server的关键字,不能包含空格,如果需要空格,则应在[]中,不能使用某些符号表示别名。
例如:-选择所有者.Id为[Int],所有者.,狗. 从所有者内部连接开始所有者.Id =狗.Id

jdg4fx2g

jdg4fx2g6#

Agents.lastname as AgentName

Where,
Agents = Table Name
lastname = Column Name in table
AgentName = New Column name that you want to add

示例:

SELECT 
    Buyers.id, 
    Buyers.mobile,
    Agents.lastname as AgentName
FROM Buyers 
INNER JOIN Agents ON Buyers.agentId=Agents.id

相关问题