MySql查询在MySql中工作,但在php中留下一个空字段

MySql查询在MySql中工作,但在php中留下一个空字段,php,mysqli,Php,Mysqli,我希望在mysql中运行此查询: SELECT * FROM ROOM_TYPE RT LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id WHERE RT.homestead_id = 20; 在mysql中,它运行得非常完美,符合我需要的结果。当我在PHP中运行它时,它会给我除了RT.room_type_id以外的所有东西,它会以null的形式返回给我 当我将查询更改为只提供该字段时,在php中仍然会得到null。

我希望在mysql中运行此查询:

SELECT *
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;
在mysql中,它运行得非常完美,符合我需要的结果。当我在PHP中运行它时,它会给我除了RT.room_type_id以外的所有东西,它会以null的形式返回给我

当我将查询更改为只提供该字段时,在php中仍然会得到null。知道为什么吗

SELECT RT.room_type_id
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;
在我的Php中,我省略了其他项目,只是为了说明问题

global $con;    
$qry    =   "SELECT RT.room_type_id FROM ROOM_TYPE RT LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id WHERE RT.homestead_id = 20";
$result =   mysqli_query($con,$qry);
return mysqli_fetch_assoc($result);
您的测试查询:

SELECT RT.room_type_id
FROM ROOM_TYPE RT
LEFT JOIN RENT_CONTRACT RC ON RT.room_type_id = RC.room_type_id
WHERE RT.homestead_id = 20;
相当于这个简化的:

SELECT RT.room_type_id
FROM ROOM_TYPE RT
WHERE RT.homestead_id = 20;
除了原点,如果RT->RC匹配不是一对一,则可以多次出现RT行。但是不同的值集应该是相同的


对于调试,您可以尝试在mysql和php中运行简化查询,看看会发生什么。当通过mysql和php运行时,您是否在同一个数据库上运行?

因此返回值的
var\u dump()
显示空值?或者您以后的
$room\u type\u id=$returned\u data['room\u type\u id']
显示为空?如果您在PHP上的原始代码是
select*
,问题是您有两个字段
room\u type\u id
,一个来自RT table(它有值,另一个来自RC table,由于左连接,它可以为空),那么发生的情况是PHP正在用一个有空值的字段覆盖此字段。因此,请在查询中输入您想要的具有正确别名的正确字段。试试看,让我知道,这样我就可以把这个作为答案了。乔治,看起来你的答案是正确的。请继续提交,我会选择它。谢谢大家!在我接受你的回答之前,你能解释一下为什么第二个查询在php中不起作用吗?