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

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

问题描述:

我是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 
) 

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

问题是,您还没有设置加入两个表的标准,所以它正在进行交叉连接。

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