Adodb: iki tablodan seçer ama sonuç kümesi döndürür postgresql

2 Cevap php

SQL için yeni duyuyorum, ve verileri tutan iki tablo (I adodb kullanıyorum) var. Her ikisi de birbirine bağlamak tuşları var, bu yüzden bu ikinci tabloda bir üst kimliği varsa ilk tablodan bir isim seçmek istedim. Ben kullanıyorum:

$db->GetCol("SELECT x_ast.name FROM x_ast, x_ast_tree WHERE x_ast_tree.parent='$parent_id'");

Bu doğru verilerle bir dizi döndürür, ancak iki kez orada. (Ben iki tablodan gelmek istedik çünkü ben varsayıyorum):

Array
(
    [0] => Trash
    [1] => Users
    [2] => admin
    [3] => Trash
    [4] => Users
    [5] => admin
)

Nasıl başka bir tablodaki verilere dayalı bir tablodan bir alan seçebilirsiniz, ancak sonuç bir set dönmek? Ben yanlış ne yapıyorum?

2 Cevap

Sorun iki tablo birleştirme için bir kriter kurmak değil, bu yüzden bir çapraz birleştirme yapıyor olmasıdır.

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'

Joins Between Tables bakabilirsiniz