gpt4 book ai didi

php - 如何在 MySQL 查询中引用表点列表示法

转载 作者:行者123 更新时间:2023-11-29 14:24:59 25 4
gpt4 key购买 nike

SELECT * from meets
LEFT JOIN teams as hteam on meets.meet_hometeam=hteam.team_id
LEFT JOIN teams as ateam on meets.meet_awayteam=ateam.team_id
LEFT JOIN teams as altloc on (meets.meet_altloc=altloc.team_id and meets.meet_altloc!='')
where meet_date between ($now+(4*86400)) and ($now+(5*86400) or meets.meet_id='2')

在 PHP 中:

$var = $queryvar->fetch_object();

当我调用 $var->ateam.team_town 时遇到问题,它只是将点视为串联,而不是表的对象。

最佳答案

执行 JOINUNION 查询时,请勿使用 SELECT *。相反,要具体说明您需要的列,如果列在不同的表中具有相同的名称,则需要为它们分配别名。

除了区分具有相似名称的列的必要性之外,您还可以确定它们返回的顺序,并防止将来添加列的架构更改带来的好处。不希望被自动拉入其中(例如图像 blob 数据或其他内容)。

SELECT
/* specify columns from each table with aliases */
hteam.team_id AS hometeam_id,
ateam.team_id AS awayteam_id,
hteam.team_town AS hometeam_town,
ateam.team_town AS awayteam_town,
...
...
etc...
FROM meets
LEFT JOIN teams as hteam on meets.meet_hometeam=hteam.team_id
LEFT JOIN teams as ateam on meets.meet_awayteam=ateam.team_id
LEFT JOIN teams as altloc on (meets.meet_altloc=altloc.team_id and meets.meet_altloc!='')
WHERE meet_date between ($now+(4*86400)) and ($now+(5*86400) or meets.meet_id='2')

然后在 PHP 中,只需通过您选择的别名来调用它:$var->hometeam_town、$var->hometown_id、$var->awayteam_town 等...

关于php - 如何在 MySQL 查询中引用表点列表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11170029/

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