1

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

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

4

2 回答 2

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'
于 2010-02-22T05:20:53.143 回答
0

看看表之间的连接

于 2010-02-22T05:21:14.670 回答