[英]how to display a selected column in PHP/MySQL
I am running this query in PHP: 我在PHP中运行此查询:
$sql="SELECT t.* FROM tickets t join
(select ticketnumber, max(datetime) as maxdt from ticket_updates tu GROUP BY ticketnumber) tu
ON t.ticketnumber = tu.ticketnumber
WHERE t.status <> 'Completed' AND tu.maxdt < now() - interval 1 hour; ";
$rs=mysql_query($sql,$conn);
while($result=mysql_fetch_array($rs)) {
echo $result["tu.maxdt"];
}
but its not showing the datetime
column 但它没有显示
datetime
列
what am i doing wrong? 我究竟做错了什么?
you are selecting max(datetime) as maxdt
in a sub select. 您在子选择中选择
max(datetime) as maxdt
。 This won't come out as tu.maxtd
and it needs to be included in the main select 这不会作为
tu.maxtd
,需要包含在主选择中
SELECT t.*, max(tu.datetime) as maxdt FROM tickets
echo $result["maxdt"];
As an aside mysql_ functions are deprecated, you should switch to mysqli_ . 暂且不建议使用mysql_函数,您应切换到mysqli_ 。 https://wiki.php.net/rfc/mysql_deprecation
https://wiki.php.net/rfc/mysql_deprecation
You've got to include this column in your query: 您必须在查询中包括此列:
$sql="SELECT t.*, tu.* FROM tickets t join
(select ticketnumber, max(datetime) as maxdt from ticket_updates tu GROUP BY ticketnumber) tu
ON t.ticketnumber = tu.ticketnumber
WHERE t.status <> 'Completed' AND tu.maxdt < now() - interval 1 hour; ";
The column is called maxdt
not tu.maxdt
so it needs to be echo $result['maxdt']
. 该列称为
maxdt
而不是tu.maxdt
因此需要echo $result['maxdt']
。 You also need to include the column in your select
statement: 您还需要在
select
语句中包括该列:
SELECT t.*, tu.*
FROM tickets t join
(SELECT ticketnumber, max(datetime) AS maxdt
FROM ticket_updates tu
GROUP BY ticketnumber) tu
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.