php - 有没有办法使用不同的 ID 别名获取 MySQL 记录
问题描述
我正在尝试使用不同的别名获取记录,但它们是相关的。
我使用的服务器是 WAMP。我已成功将我的项目/脚本连接到 PhpMyAdmin 数据库,并且可以使用一些查询在我的 PHP 文件中看到一些记录并成功插入。
但是,当我尝试使用不同的别名获取记录时,我收到一条错误消息:“MySQL 说:#1066 - Not Unique table/alias:'teams'”?
您能否解释一下发生了什么,因为当我在数据库上检查这些记录的 ID 时,它们显示它们正在连接/从另一个表中提取记录。
以下是我的 MySQL 查询,我在其中尝试了多次更改,但每次尝试后都没有成功:
SELECT DISTINCT fixtures.fixture_id, fixtures.fixture_date,
fixtures.fixture_time, fixtures.home_teamID,
fixtures.away_teamID, fixtures.comp_id
From fixtures
JOIN teams ON fixtures.home_teamID = teams.team_id
JOIN teams ON fixtures.away_teamID = teams.team_id
JOIN competitions ON fixtures.comp_id = competitions.comp_id
ORDER BY fixture.id ASC
来自查询的错误消息指出:
SELECT DISTINCT fixtures.fixture_id, fixtures.fixture_date,
fixtures.fixture_time, fixtures.home_teamID,
fixtures.away_teamID, fixtures.comp_id
From fixtures
JOIN teams ON fixtures.home_teamID = teams.team_id
JOIN teams ON fixtures.away_teamID = teams.team_id
JOIN competitions ON fixtures.comp_id = competitions.comp_id
ORDER BY fixture.id ASC
LIMIT 0, 25
请向我解释我做错了什么,请注意我是使用 PHP 和 MySQL 的这个平台的新手。提前致谢。
解决方案
您加入了两次“团队”,因此当您提到“团队”时,它不知道您是指在 home_teamID 上加入的第一支球队还是在 away_teamID 上加入的第二支球队。
您可以通过给每个连接一个不同的名称来解决此问题,如下所示:
SELECT DISTINCT fixtures.fixture_id, fixtures.fixture_date,
fixtures.fixture_time, fixtures.home_teamID,
fixtures.away_teamID, fixtures.comp_id
From fixtures
JOIN teams AS hometeams ON fixtures.home_teamID = hometeams.team_id
JOIN teams AS awayteams ON fixtures.away_teamID = awayteams.team_id
JOIN competitions ON fixtures.comp_id = competitions.comp_id
ORDER BY fixture.id ASC
推荐阅读
- openlayers-6 - 如何在 OL 6 中禁用 KeyboardPan
- c++ - 如何在 Visual Studio Code 的 C++ 项目中使用外部库
- reactjs - 是否可以在反应中禁用对特定组件的响应?
- powershell - 如何使用powershell从文本文件中复制子字符串
- javascript - 在页面滚动到某个片段之前,如何防止 CSS 动画?
- flutter - 如何在移动应用中更改颤振应用中的名称
- flutter - Flutter:如何同步 TOTP 代码?
- python - 将时间指定为“base_time”的偏移量时合并 netCDF 文件
- javascript - Moodle Web Service如何获取itemid
- macos - 有没有办法在 macOS 上显示“选择文件夹”对话框?