Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用别名时重复的字段_Mysql_Sql - Fatal编程技术网

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*
是一种糟糕的做法:我不知道,我一直认为手动选择所有字段对性能来说是一个问题,一位高级程序员也告诉了我这件事,但显然他错了,谢谢。