Mysql 使用别名时重复的字段
我编写了一个提取可用比赛的查询,我的表有一个名为Mysql 使用别名时重复的字段,mysql,sql,Mysql,Sql,我编写了一个提取可用比赛的查询,我的表有一个名为name的公共字段,因此我使用别名在最终结果中识别此字段: $query = "SELECT c.*, c.name AS competition_name, s.name AS season_name FROM competition c LEFT JOIN competition_seasons s ON c.id = s.competition_id WHERE country_id = :country_id"; 问题是查询将返回字段na
name
的公共字段,因此我使用别名
在最终结果中识别此字段:
$query = "SELECT c.*,
c.name AS competition_name,
s.name AS season_name
FROM competition c
LEFT JOIN competition_seasons s ON c.id = s.competition_id
WHERE country_id = :country_id";
问题是查询将返回字段name
:
{
"id": "1093",
"country_id": "1",
"name": "Premier League",
"category": "1",
"competition_name": "Premier League",
"season_name": "2018"
}
这是对比赛名称的复制,我做错了什么?你选择c.*,其中包括
c.name
:
{
"id": "1093",
"country_id": "1",
"name": "Premier League",
"category": "1",
"competition_name": "Premier League",
"season_name": "2018"
}
您的查询扩展到:
SELECT
c.id, c.country_id, c.name, c.category,
c.name AS competition_name, s.name AS season_name
FROM ...
因此,您
选择名称
字段两次。您选择c.*
,其中包括c.name
:
{
"id": "1093",
"country_id": "1",
"name": "Premier League",
"category": "1",
"competition_name": "Premier League",
"season_name": "2018"
}
您的查询扩展到:
SELECT
c.id, c.country_id, c.name, c.category,
c.name AS competition_name, s.name AS season_name
FROM ...
所以你两次选择名称
字段。mmm但是我指定c.name作为比赛名称
是的,但是你两次选择该字段,一次在c.*
中,一次在c.name作为比赛名称
。是的,使用SELECT*
无论如何都是不好的做法:我不知道,我一直认为手动选择所有字段对性能来说是个问题,一位高级程序员也告诉了我这件事,但显然他错了,谢谢。嗯,但是我指定了c.name作为competition\u name
是的,但是你选择了两次该字段,一次在c.
,有一次参加了c.name作为竞赛\u name
。是的,使用SELECT*
是一种糟糕的做法:我不知道,我一直认为手动选择所有字段对性能来说是一个问题,一位高级程序员也告诉了我这件事,但显然他错了,谢谢。