当我从查询中得到结果并将其打印在表格中时,我想从另一个表格中打印出我的外键。
我的连接和查询代码:
$host="localhost";
$username="****";
$password="****";
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db('****')or DIE(mysql_error());
$tbl_name="ticket";
$sql = "SELECT `id`, `subject`, `assigned`, `status`, `created`, `priority_id` FROM $tbl_name";
$result = mysql_query($sql);
这是用于在表格中打印结果的代码
$row = mysql_fetch_assoc($result);
print ('<table id="myTable" class="tablesorter" cellpadding="0" cellspacing="0">');
print ("<thead>");
print ("<th>ID</th>");
print ("<th>SUBJECT</th>");
print ("<th>ASSIGNED</th>");
print ("<th>STATUS</th>");
print ("<th>CREATED</th>");
print ("<th>PRIORITY</th>");
print ("</tr> </thead>");
print ("<tbody>");
while ($row) {
$id = $row['id'];
print ('<tr>');
foreach ($row as $col => $value) {
print ("<td data-href=tickets/edit.php?id=$id>$value</td>");
}
print ("</tr>");
//Fetch next row
$row = mysql_fetch_assoc($result);
}
print ("</tbody>");
print ("</table>");
mysql_free_result($result);
因此,票证表中的优先级ID是“优先级”表的外键,其中我有三个不同的行
id name
1 low
2 medium
3 high
对于故障单表中的已分配ID也是如此。这是分配故障单的人员的名称。它存储在“成员”表
中id name
1 John
2 Ben
3 Brad
我该怎么做?我尝试了内连接,但没有运气。
(我也知道我应该使用mysqli,但是它有一些问题。这个有效,所以我可能会在以后更改它。)
答案 0 :(得分:1)
请尝试以下操作:
$sql = "SELECT t.id, t.subject, m.name AS memberName, t.status, t.created, p.name AS priorityName
FROM $tbl_name AS t
LEFT JOIN priority AS p ON t.priority_id = p.id
LEFT JOIN members AS m ON t.assigned = m.id";
编辑:我在第二次LEFT JOIN中忘记了ON。我刚补充说。