SQL-запрос - PgSQL - PullRequest
       5

SQL-запрос - PgSQL

0 голосов
/ 13 апреля 2011

Для создания SQL-запроса. Кажется довольно простой, и я не могу обернуть голову вокруг этого. Есть две таблицы примерно так:

Table A : call_id  receive_id        Table B : entity_id   parent
          -------  ----------                  ---------   ------
            x         y                          x           a
            y         z                          y           b
            p         z                          z           b
                                                 p           c

Элементы как в столбце call_id, так и в столбце receive_id имеют тип объекта. Таблица B содержит родителей для каждого объекта.
Мне нужен запрос, чтобы выбрать только те строки из таблицы A, где родители вызова и получения не совпадают. В таблице примера я хочу, чтобы все строки, кроме второй, потому что y и z имеют общего родителя b.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2011
SELECT *
FROM A
WHERE (SELECT B.parent FROM B WHERE B.entity_id = A.call_id) 
   != (SELECT B.parent FROM B WHERE B.entity_id = A.receive_id)
;
0 голосов
/ 13 апреля 2011

Попробуйте это (будучи проверенным на моем MySQL):


select a.* from
A a inner join B b1 on a.call_id=b1.entity_id
    inner join B b2 on a.receive_id=b2.entity_id
where b1.parent&lt&gtb2.parent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...