Adodb:Postgresql从两个表中选择但返回一组结果

时间:2010-02-22 05:17:42

标签: php sql postgresql adodb

我是SQL的新手,有两个保存数据的表(我使用的是Adodb)。它们都有将它们连接在一起的键,所以如果在第二个表中有父ID,我想从第一个表中选择一个名称。我正在使用:

$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
)

如何根据另一个表中的数据从一个表中选择一个字段,但只返回一组结果?我做错了什么?

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)