Как я могу дублировать элементы при объединении - PullRequest
0 голосов
/ 09 марта 2012

У меня есть 2 таблицы.

TableA
ID | ColA | ColB
1  | asd  | x
2  | qwe  | z
3  | poi  | w

TableB
ID | ColC | ColD | ColE
1  | rty  | z    | 123
2  | fgh  | x    | 276
3  | rtyy | z    | 657

и я использую этот SQL

SELECT bb.colc, aa.cola FROM tableA aa, tableb bb
WHERE aa.colb = bb.cold

и получение этого результата

Result
ID | ColA | ColC
1  | asd  | fgh
2  | qwe  | rty
3  | qwe  | rtyy

Я знаю, что это правильно, но как мне не дублировать строку 'qwe'?

Для меня строка из таблицы B, которая используется, не имеет значения.

Ответы [ 3 ]

0 голосов
/ 10 марта 2012

Исходя из ваших комментариев, похоже, что вы просто хотите:

   SELECT aa.id, aa.cola 
     FROM tableA aa
    WHERE aa.colB in (Select bb.cold from tableb bb);

Возможно, это не самый эффективный и эффективный способ сделать это, но действительно ли это тот набор результатов, который вы ищете?

0 голосов
/ 10 марта 2012

Этот запрос выберет только одну запись COLC с помощью функции max:

SELECT aa.id,
       aa.cola,
       Max(bb.colc),
  FROM tableA aa,
       tableb bb
 WHERE aa.colb = bb.cold
 GROUP BY aa.id,
          aa.cola;
0 голосов
/ 09 марта 2012

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

select tb1.colc, ta1.cola from (
  select max(id) id, max(colc) as colc, cold from tb
  group by cold
) tb1
join ta ta1 on ta1.colb = tb1.cold

Дайте мне знать, если это то, что вы ожидали.

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