gpt4 book ai didi

mysql - 如何在 MySQL 中使用自动表别名生成查询结果?

转载 作者:行者123 更新时间:2023-11-30 21:33:38 25 4
gpt4 key购买 nike

MySQL 版本 10 (MariaDB)。PHP 5.6.3libmysql 5.1.73

我使用 Oracle 已经有一段时间了,但我依稀记得 Oracle 完全符合我在此示例中的预期。我可能弄错了,或者 MySQL 只是没有做同样的事情......这个例子是为这个问题创建的,所以如果你看到一个语法问题,它与那个有关。

假设这样一个简单的模式:

Table COUNTRY
ID
NM

Table PROVINCE
ID
NM
CTID

我希望这个查询:

SELECT * FROM PROVINCE P JOIN COUNTRY C ON C.ID = P.CTID

将产生以下输出:

P.ID | P.NM | P.CTID | C.ID | C.NM

不幸的是,输出没有表别名,并且所选表中连接表的列从结果中丢失(结果中只有一个 ID 列)。像这样:

ID | NM | CTID

有没有办法得到上面显示的别名输出?或者是否有其他方法可以在查询中显式使用P.ID as P_ID 之类的内容来获取结果中的所有五列?

最佳答案

MySQL 不会像那样创建合格的别名。如果不明确命名别名,如果选择列表包含多个表中具有相同名称的列,则结果中将有重复的列名。

您不必为所有列创建别名,只需为您需要区分的列创建别名即可。

你不必放弃通配符,但你应该将通配符限制在特定的表中,你不需要为其创建别名。

SELECT C.*, P.ID AS P_ID, P.NM AS P_NM
FROM PROVINCE P JOIN COUNTRY C ON C.ID = P.CTID

关于mysql - 如何在 MySQL 中使用自动表别名生成查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55034493/

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