2013-04-06 6 views
0

У меня есть таблица, как это в SQLPHP ВПР в SQL

ID NAME SIZE GROUP1 GROUP2 SIZE2 
    1 casa xl 1  2   
    2 casa l 1  2 

Я хотел бы получить таблицу, как этот

 ID NAME SIZE GROUP1 GROUP2 SIZE2 
    1 casa xl 1  2   l 
    2 casa l 1  2   xl 

Таким образом, значение GROUP1 и GROUP2 определить идентификатор, который имеют аналогичное ИМЯ, но другое значение для размера Хо я могу это сделать?

ответ

0

снова присоединиться в той же таблице, с идентификатором, который не то же самое, как и сама запись:

select 
    t.ID, t.NAME, t.SIZE, t.GROUP1, t.GROUP2, t2.SIZE 
from 
    TheTable t 
    inner join TheTable t2 on t2.ID = case t.GROUP1 when t.ID then t.GROUP2 else t.GROUP1 end 

Чтобы выбрать из table1 и вставить его в table2:

insert into table2 
select 
    t.ID, t.NAME, t.SIZE, t.GROUP1, t.GROUP2, t2.SIZE 
from 
    table1 t 
    inner join table1 t2 on t2.ID = case t.GROUP1 when t.ID then t.GROUP2 else t.GROUP1 end 
+0

привет спасибо за Я создаю таблицу1 со значением и таблицей2 без значения, и я попытался использовать этот код . Выберите table1.ID, table1.NAME, table1.SIZE, table1.GROUP1, table1.GROUP2, table1.SIZE2 от table1 внутреннее соединение table2 на table2.ID = case table1.GROUP1, когда ID, тогда table1.GROUP2 else table1.GROUP1 end "; что вы передали мне .... но это не работает – user2120473

+0

@ user2120473: В моем примере показано, как запросить одну таблицу, чтобы получить результат. Если вы присоединитесь к другой таблице, это не сработает. – Guffa

+0

Привет, guffa, извините, я думаю, что неправильно понял ... Я должен создать только одну таблицу, которую я называю таблицей 1, например, а не другую таблицу (table2), где ставится новый результат? – user2120473