2015-10-08 88 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