столбцы из разных таблиц вывести в разные столбцы
условно есть таблица 1, в ней есть id, code и name. в таблице 2 есть id, code, name.
вопрос вот в чём, как вывести 1.id в один столбец и вывести 2.id во второй столбец?
пробовал join правый, левый, внутренний и т.д.
подскажите, решение где то рядом, но ускользает от меня.
upd:
пробовал cross join, но он просто перемножил id из таблиц.
left join возвращает id только из таблицы 1.
right join возвращает id из таблицы 2, но почему-то пустые строки, но кол-во строк совпадает с кол-вом строк из 2 таблицы.
Ответы (1 шт):
Уточните БД которое вы используете. А вообще задача стандартная, попробуйте следующий запрос: Насколько я понял, code является бизнес ключём, т.е. определяет уникальность записи..
Пусть это будут таблицы Human и Enemy:
SELECT H.Id, E.Id,
COALESCE(H.code, E.code) as code,
COALESCE(H.name, E.name) as name
FROM Human H
FULL JOIN Enemy E on H.code = E.code
--H.name = E.name -- это условие стоит раскомментировать,
--если связка по имени имеет место быть
Если это важно:
@Oopss, id code name есть повторяющиеся значения, но не все
Можно добавить дистинкт в первую или вторую или в обе таблички перед соединением.
Получится что-то вроде:
SELECT H.Id, E.Id,
COALESCE(H.code, E.code) as code,
COALESCE(H.name, E.name) as name
FROM (SELECT DISTINCT id, code, name FROM Human) as H
FULL JOIN (SELECT DISTINCT id, code, name FROM Enemy)
as E on H.code = E.code
Вам нужно определиться и описать в вопросе какая связь между этими таблицами. Я предположил, что поле code.