Проблема присоединения SQL ... как она называется? - PullRequest
3 голосов
/ 17 сентября 2009

У меня есть две таблицы, которые объединены. Я включил «вывод» соединенных таблиц. Мне интересно, как называется эта проблема соединения? Есть дублирующие строки.

Таблица 1 Таблица 2
ID Имя ID Имя
1 Джои 4 Мэри
2 Шон 5 Ксавье
3 Марк 6 Гари

Вывод соединения:

ID Имя ID Имя
4 Мэри 1 Джо
4 Мэри 2 Шон
4 Мэри 3 Марка
5 Ксавье 1 Джои
5 Ксавье 2 Шон
5 Ксавье 3 Марк
6 Гари 1 Джои
6 Гари 2 Шон
6 Гари 3 Марк

Ответы [ 4 ]

8 голосов
/ 17 сентября 2009

Если память не изменяет, это называется декартовым произведением.

3 голосов
/ 17 сентября 2009

Я думаю, ваша проблема в том, что вы хотите использовать UNION, а не JOIN.

Пример:

SELECT * FROM Table1 UNION SELECT * FROM Table2;

Должно дать вам:

ID  Name
1   Joey
2   Shawn
3   Mark
4   Mary
5   Xavier
6   Gary

Это то, что вы пытаетесь сделать?

1 голос
/ 17 сентября 2009

Это CROSS JOIN .

0 голосов
/ 17 сентября 2009

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

SELECT * FROM Table2, Table1

Это называется CROSS JOIN, и это нормальное поведение, при котором для каждой строки в таблице2 будут добавлены значения из таблицы1.

То, что вы, похоже, хотите, это СОЮЗ

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