2015-10-08 119 views
0

我正在用MySQL查询3个表格并进行1次查询。 我使用的JOIN方法如下:MYSQL LEFT JOIN来自空表的返回值

  1. 表具有列 “test_column” 值= “test_value”
  2. 表具有列 “test_column” 值= “test_value”
  3. 表具有列“test_column “值= NULL

I'getting总是test_column值为NULL,但我想有值 ”test_value“

$sql = "SELECT _t.*, _t1.*, _t2.*"; 
    $sql .= "FROM _test as _t "; 
    $sql .= "LEFT JOIN _test1 as _t1 "; 
    $sql .= "ON _t.test_column=_t1.test_column "; 
    $sql .= "LEFT JOIN _test2 as _t2 "; 
    $sql .= "ON _t.test_column = _t2.test_column "; 
    $sql .= "WHERE _t.test_column ='test_value'"; 

回答

1

您的查询正在选择名为test_column的多个列。当您以PHP获得结果时,$_row['test_column']将包含最后一个的值,即_test2.test_column,即NULL

您应该使用列别名,以便您可以从特定表中获取列。

$sql = "SELECT _t.test_column AS t_test_column, _t.*, _t1.*, _t2.*"; 

然后使用$row['t_test_column']来获取值。

+0

对不起3.表是空的没有任何记录! –

+0

当您执行LEFT JOIN时,如果不匹配,您将从表中获取所有列的空值。 – Barmar