не получаеться объединить

av-kuz
Дата: 02.03.2007 12:17:31
SELECT ALL

users.f_name "FNAME",
adres.contacts_information

FROM
     adres, -- spisok adresov
     useradr, -- privyazka adresov k user card
     users -- dannye userOV
WHERE 
      users.pcard_id = useradr.pcard_pcard_id(+) AND adres.ci_id(+) = useradr.ci_ci_id
   -- AND adres.trci_trci_id = 2 -- adres*/

в столбце adres.trci_trci храниться свойство адреса может быть

1 - фактический
2 - прописка
3 - телефон

нужно вывести список userOV и их факрических адресов (если нет факт адреса то пусто)
userY должны быть все строки с другими видами адресов нужно исключить
если раскоментировать

   -- AND c_i.trci_trci_id = 2 -- adres*/
то исчезают и те у кого нет факт адреса
Jannny
Дата: 02.03.2007 12:18:50
(+)
av-kuz
Дата: 02.03.2007 12:20:29
спасибо!
av-kuz
Дата: 02.03.2007 12:35:42
теперь появляються дубликаты с пустым полем адреса
alex-ls
Дата: 02.03.2007 13:27:48
LEFT JOIN + IN
av-kuz
Дата: 02.03.2007 13:52:38
Сделал так

SELECT ALL

users.f_name "FNAME",
adres.contacts_information
FROM
   (users LEFT JOIN useradr
   ON users.pcard_id = useradr.pcard_pcard_id)
            LEFT JOIN adres
   ON useradr.ci_ci_id = adres.ci_id
     AND adres.trci_trci_id IN (2)

двойные строки на месте
alex-ls
Дата: 02.03.2007 13:57:19
дубликаты на каком этапе возникают после первого join или второго?
orawish
Дата: 02.03.2007 14:02:13
av-kuz
Сделал так
..двойные строки на месте


..FROM
     (select * from adres where adres.trci_trci_id = 2) adres, -- spisok adresov
     useradr, -- privyazka adresov k user card
     users -- dannye userOV
WHERE 
      users.pcard_id = useradr.pcard_pcard_id(+) AND adres.ci_id(+) = useradr.ci_ci_id
av-kuz
Дата: 02.03.2007 14:05:57
после первого
alex-ls
Дата: 02.03.2007 14:06:59
av-kuz
после первого

так на этом этапе их и нужно отсечь! например IN или DISTINCT