хорошо у вас есть 4 разных способа слияния таблицы.
- Прежде всего, вы можете создать запрос, который дает результат, как если бы это было слияние:
простое соединение:
TSQL
- или вы можете создать представление, которое представляет собой новую таблицу, значения которой обновляются в реальном времени по запросу:
используя вид:
create or replace view t3 as
select ssn, t1.name, t2.last, t2.ad, MAX(t1.sal, t2.sal)
from t1, t2
where t1.ssn = t2.ssn;
- или третий вариант, вы можете создать новую таблицу на основе значений предыдущего:
или создать новую таблицу, и вставка значения двух других
create table t3 (ssn, name, last, ad, sal);
insert into t3 select ssn, t1.name, t2.last, t2.ad, MAX(t1.sal, t2.sal)
from t1, t2
where t1.ssn = t2.ssn;
у вас есть выбор оружия! :-)
о запросе, вы можете сделать более сложным присоединиться, чем я писал в моих примерах, а именно:
select *
from t1, t2
where t1.ssn = t2.ssn
and t1.name = t2.name
and (t1.last = t2.last
or t1.ad = t2.ad
or t1.sal = t2.sal);
как я на самом деле не получить логику в вашем t3 join table, я действительно не вижу, что вы хотите в качестве условия. как объявление столбца, которое имеет строку abc
, которая исходит из ниоткуда. Но вы можете заменить AND
на OR
в предыдущем запросе, чтобы изменить поведение выбора и добавить выражения IF()
, чтобы выбрать значение ...
нормально, то вот обзор запросов, которые могут удовлетворить ваши потребности (если sal
это номер):
select t1.ssn, t1.name, t2.last, t2.ad, MAX(t1.sal, t2.sal)
from t1, t2
where t1.ssn = t2.ssn;
или
select t1.ssn as ssn,
t1.name as name,
t2.last as last ,
t2.ad as ad,
if(t1.sal is null,t2.sal,t1.sal) as sal
from t1, t2
where t1.ssn = t2.ssn;
или
select t1.ssn as ssn,
t1.name as name,
t2.last as last ,
t2.ad as ad,
case when s1.sal is null
then s2.sal
else s1.sal
end as sal
from t1, t2
where t1.ssn = t2.ssn;
- В oracle и postgresql (но не mysql и sqlite), вы Также есть merge statement.
Просьба уточнить, если вы хотите вставить или CREATE/SELECT – Terence
Полезно помечать вопросы баз данных с помощью программного обеспечения базы данных используется, например, MySQL или SQL Server 2008R2. – HABO
[Что, собственно, вы пробовали?] (Http://whathaveyoutried.com) –