2015-04-02 2 views
0

Возможно, кто-нибудь посоветует, как написать запрос mySQL для результата ниже, на основе данных таблицы A и таблицы B.База данных MySQL в базе данных

Table A 
======= 

ID | Product 
------------ 
1 | A 
2 | B 
3 | C 

Table B 
======= 

ID | Link | Extra Field | Extra Value 
------------------------------------- 
1 | 1 | Tax   | Yes 
2 | 1 | Photo  | No 
3 | 2 | Tax   | Yes 
4 | 2 | Photo  | Yes 
5 | 3 | Tax   | No 
6 | 3 | Photo  | Yes 

Result 
====== 

Product | Tax | Photo 
--------------------- 
A  | Yes | No 
B  | Yes | Yes 
C  | No | Yes 

ответ

0

Одним из подходов является join и group by запроса, с условной агрегации.

select a.product, 
     max(case when field1 = 'tax' then field2 end) as tax, 
     max(case when field1 = 'photo' then field2 end) as photo 
from a join 
    b 
    on a.id = b.link 
group by a.product; 
Смежные вопросы