我正在尝试从我的SQL获取信息到PHP页面,我遇到的问题我试图使用多个表来填充结果
表的列名相同,但表名明显不同。
表格票据
STATUS_ID; TICKET_ID
表ticket__cdata
TICKET_ID
SELECT * FROM ticket WHERE status_id = '1' ORDER BY created DESC
我只过滤表中的表A中的1
我在表A中回显了PHP上的TICKET_ID,但现在我想在表B中过滤ticket_id并从该表单中提取信息。表中没有status_id,因此无法再次对其进行过滤。
逻辑说我必须说这样的话
SELECT * FROM ticket_cdata WHERE ticket_id = '".$ticket_id."'
这是我的日期代码,没有第二个查询
$result = mysql_query("SELECT * FROM ost_ticket WHERE status_id = '1' ORDER
BY created DESC");
?>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td class="center">
<div align="center"><? echo $rows['number']; ?></div></td>
<td><div align="center"><? echo $rows['ticket_id']; ?></div></td>
<td><div align="center"><? echo $rows['lbs_time']; ?></div></td> //This it the info required from TABLE ticket but must be linked to the status_id
更新字符串
$result = mysql_query("SELECT tc.*
FROM ticket_cdata tc
JOIN ticket t ON tc.ticket_id = t.ticket_id
WHERE t.status_id = '1'
ORDER BY t.created DESC");
?>
<tr>
<td class="center">
<div align="center"><? echo $rows['number']; ?></div></td>
<td><div align="center"><? echo $rows['ticket_id']; ?></div></td>
<td><div align="center"><? echo $rows['created']; ?></div></td>
<td><div align="center"><? echo $rows['subject']; ?></div></td>
现在我无法回复任何信息
答案 0 :(得分:2)
您可以使用加入:
SELECT tc.*
FROM ticket_cdata tc
JOIN ticket t ON tc.ticket_id = t.ticket_id
WHERE t.status_id = '1'
ORDER BY t.created DESC
答案 1 :(得分:0)
您的初始查询可以更改为:
SELECT * FROM ticket t
WHERE t.status_id = '1'
AND EXISTS (SELECT * FROM ticket__cdata WHERE ticket_id = t.ticket_id)
ORDER BY t.created DESC
这会将结果限制为ticket__cdata
表格中包含status_id = '1'
的票证。