【发布时间】:2020-06-02 18:46:14
【问题描述】:
通过以下查询,我从不同的表中获取数据,并且几乎所有表都有 id 字段。
SELECT * FROM contracts AS co JOIN clients AS cl ON cl.id = co.client_id JOIN shops AS pv ON pv.id = co.shop_id
表结构: 合同(id、client_id、shop_id、报价、价格...)
客户(身份证、姓名、姓氏..)
商店(ID、代码、地址...)
现在,我正在使用 mysql_fetch_assoc 将数据打印到表中。除了表格合同的 id 之外,所有字段都正确打印。下面是简化的 PHP 代码:
$query = mysql_query ($sql) or die (mysql_error());
while($row = mysql_fetch_assoc($query)){ echo $row["id"]; }
奇怪的是,ID 被打印出来但不是正确的。如果我尝试使用“co.id”,它根本不起作用。我知道这段代码已被弃用,但我正在对旧项目进行一些更新,现在无法重构整个项目。
问题是:有没有办法定义我想要的 id?我会避免在 SELECT 替换 * 中定义我需要的所有字段。
【问题讨论】:
-
问题是您使用
*- stackoverflow.com/questions/17715049/… 提供了一些想法(不使用mysql_fetch_assoc()是其中之一)。 -
您必须至少定义几个字段。你可以做
co.id AS co_id,cl.id AS cl_id, * -
嗨@aynber,我在执行“co.id AS co_id,cl.id AS cl_id, *”时收到错误消息。