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'
美丽,那工作!我知道加入,只是还没有理解他们。谢谢! – 2010-02-22 05:27:11