Adodb: Postgresql выбрать из двух таблиц, но вернуть один набор результатов - PullRequest
1 голос
/ 22 февраля 2010

Я новичок в SQL, и у меня есть две таблицы, которые содержат данные (я использую Adodb). У них обоих есть ключи, которые соединяют их вместе, поэтому я хотел выбрать имя из первой таблицы, если у него есть родительский идентификатор во второй таблице. Я использую:

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

1 голос
/ 22 февраля 2010

Проблема в том, что вы не установили критерий для объединения двух таблиц, поэтому он выполняет перекрестное соединение.

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 голосов
/ 22 февраля 2010
...