我正在创建一个查询,我使用 LEFT JOIN
来连接两个表。但是我在从表中获取 fb_id
值时遇到了问题,它给了我一个空的结果。这是我的代码:
$sql = "SELECT * FROM tblfeedback a LEFT JOIN tblreply b ON a.fb_id = b.fb_id WHERE a.fb_status = 1 ORDER BY a.fb_id DESC";
$res = $con->query($sql);
....
....
上面的查询会给我这样的结果:
我认为这就是我没有得到 fb_id
值的原因,因为最后一列为空。如何从第一列中获取 fb_id
的值?谢谢。我真的有麻烦了。我希望有人能开导我。
最佳答案
您应该为父表中的列起一个别名,因为两个表中的列名相同。 fetch_assoc()
填写$row['fb_id']
时,获取结果行的最后一个,可以为NULL
,因为它来自第二个表。
SELECT a.fb_id AS a_id, a.*, b.*
FROM tblfeedback a
LEFT JOIN tblreply b ON a.fb_id = b.fb_id
WHERE a.fb_status = 1
ORDER BY a_id DESC
然后您可以访问 $row['a_id']
来获取此列。
更一般地说,我建议不要使用 SELECT *
。只需选择您实际需要的列。所以你可以选择a.fb_id
而不选择b.fb_id
,它会一直被填上。
关于php - 关系表查询在表中的字段 'id' 中给我一个空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42688572/