我是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
)
如何根据另一个表中的数据从一个表中选择一个字段,但只返回一组结果?我做错了什么?
答案 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)