Привет, мой SQL немного ржавый, и вам нужна небольшая помощь в правильном утверждении. У меня есть следующие настройки таблицы A и B:Соедините две таблицы на основе двух столбцов
A B
===== ======
A A B
B C B
A C
B D
D A
Я хотел бы присоединиться к одной колонки на А с обеих колонок на В, чтобы в конечном итоге с таблицей C:
C
=====
A
A
B
B
B
A
Я пробовал разные присоединяется, но когда я использую оператор OR, я получаю много строк. Моя установка немного более продвинутая, я надеюсь, что упрощенные таблицы выше достаточно, чтобы проиллюстрировать мою проблему. Моя настройка немного выше в приведенном выше примере. В моем приложении реального мира у меня есть две таблицы, где мне нужно найти все несколько телефонных номеров, которые могут быть в двух столбцах: PHONE1 и PHONE3. Сначала я делаю перекресток, чтобы получить все номера телефонов, которые представлены более одного раза. Моя проблема в том, что мне нужно закончить утверждение, возвращающее все мультиплеты и некоторые дополнительные данные из других столбцов. Вот мое заявление:
SELECT * FROM
(SELECT COMPANY, CONTACT, PHONE1, PHONE3, U_EMAIL, UMEDLEM, UKONKAT, UAAFMELD
FROM CONTACT1 JOIN CONTACT2 on CONTACT1.ACCOUNTNO = CONTACT2.ACCOUNTNO) as t1
INNER JOIN
(SELECT PHONE1 as PHONE FROM CONTACT1 WHERE LEN(PHONE1) > 0
INTERSECT
SELECT PHONE3 FROM CONTACT1 WHERE LEN(PHONE1) > 0) as t2 ON t1.PHONE1 = t2.PHONE
Что вы на самом деле хотите? Будь конкретным с структурой таблицы и вашим существующим запросом –
, с какими двумя коллегами вы хотите присоединиться, не могли бы вы быть более ясными – ismail
Жаль, что я попытался быть более ясным сейчас. Я надеялся попросить более общий, чтобы другим было легче, кроме моей конкретной проблемы, получить помощь. Моя ошибка – DNRN