2010-02-22 146 views
1

我是SQL新手,並且有兩個包含數據的表(我正在使用Adodb)。他們都有將它們連接在一起的鍵,所以我想從第一個表中選擇一個名稱,如果它在第二個表中有一個父ID。我正在使用:Adodb:Postgresql從兩個表中選擇,但返回一組結果

$db->GetCol("SELECT x_ast.name FROM x_ast, x_ast_tree WHERE x_ast_tree.parent='$parent_id'"); 

這將返回一個數組與正確的數據,但它在那裏兩次。 (我假設,因爲我問來自兩個表):

Array 
(
    [0] => Trash 
    [1] => Users 
    [2] => admin 
    [3] => Trash 
    [4] => Users 
    [5] => admin 
) 

如何從基於另一個表中的數據一個表中選擇一個字段,但只返回一個結果集?我究竟做錯了什麼?

回答

1

問題是,您還沒有設置加入兩個表的標準,所以它正在進行交叉連接。

SELECT x_ast.name 
FROM x_ast 
INNER JOIN x_ast_tree 
    ON x_ast.somefield=x_ast_tree.somefield 
WHERE x_ast_tree.parent='$parent_id' 
+0

美麗,那工作!我知道加入,只是還沒有理解他們。謝謝! – 2010-02-22 05:27:11

相關問題