Sqlite Join (или некоторый его вариант) - PullRequest
0 голосов
/ 05 октября 2011

Имеется такой набор результатов:

Col1    Col2
============
BAML    491
BARC    362
BDPT    1
BNP     9

(выберите Col1, считать (some_col) как Col2 из таблицы, где another_col = группа SomeCondition по Col1)

и еще один такой:

Col3    Col2
============
BAML    494
BARC    366
BDPT    1
BNP     10
CALY    3

(выберите Col3, считать (some_col) как Col2 из таблицы, где another_col = группа SomeOTHERCondition по Col3)

Как мне «объединить» эти два запроса в форму:

BAML    491       494
BARC    362       366
BDPT    1         1
BNP     9         10
CALY              3

Обратите внимание, что первые два запроса работают с той же таблицей . Здесь я вижу несколько вариантов помощи Join (не так уж много работал с sql). Я просто не могу понять, как поместить эти два запроса в один запрос, чтобы получить объединенный набор reusltset.

1 Ответ

1 голос
/ 05 октября 2011

Попробуйте это:

select b.col1, b.col2, a.col2
from (
    select Col3, count(some_col) as Col2
    from Table
    where another_col = 'SomeOTHERCondition'
    group by Col3
) as a
left outer join (
    select Col1, count(some_col) as Col2
    from Table
    where another_col = 'SomeCondition'
    group by Col1
) as b
on a.col3 = b.col1

Я не уверен, что SQLite поддерживает это.


Исходя из комментариев, вышеприведенное работает, но вы действительно хотите FULL OUTER JOIN, а SQLite это не нравится. Вы можете попробовать подделать его с помощью двух ЛЕВЫХ НАРУЖНЫХ СОЕДИНЕНИЙ и СОЮЗА:

select b.col1, b.col2, a.col2
from ... as a left outer join ... as b ...
UNION
select b.col1, b.col2, a.col2
from ... as b left outer join ... as a ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...