gpt4 book ai didi

mysql - 重命名多表 MySQL SELECT 上的键

转载 作者:行者123 更新时间:2023-11-29 11:18:34 26 4
gpt4 key购买 nike

我正在尝试获取 3 个不同表格的内容。

表 A = 包含我们的用户列表,表 B = 返回与用户相关的契约(Contract), 表 C = 返回与合约相关的公式详细信息。

为了使其正确,我使用以下多表请求:

SELECT * FROM rscm_students A, rscm_files B, rscm_formulas C
WHERE B.dossier_status = 0
AND A.student_agency = :agency
AND B.file_student_id = A.id
AND B.file_formula_id = C.id
AND C.formula_place = 0
GROUP BY A.student_uniqid
ORDER BY B.file_date_create";

这就是整个该死的事情变得有点复杂的地方。它返回正确的数据,但这里每个表的主键称为“id”。我无法在 php 中执行一些 foreach 操作。如果我在 1 个用户上获得 3 个合约,我不可能将每个合约重新分组到同一个用户数组中。

我仍然不是 SQL 专家,这就是为什么我使用 Phinx 来控制我的数据库。这也是为什么我的主键被命名为“id”。

如果你有好的想法,请告诉我!

最佳答案

好的,我来回答一下。

首先,不要使用

select *

上面的选择非常适合生产前的快速而肮脏的开发。但这会让事情变得一团糟,例如与来自多个表(例如 id 等)的公共(public)列名称的连接。

使用现代显式连接语法。不要使用旧的连接样式。因此,请使用 joinon

最后使用表别名,为 id 列或其他冲突创建唯一的输出列名称,例如

A.id as aid, B.id as bid

关于mysql - 重命名多表 MySQL SELECT 上的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39349657/

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