简体   繁体   English

如何在PHP / MySQL中显示选定的列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM