Considering these two tables in the database:
Product Table:
| id | nome |
|-----|-----------|
| aaa | Produto A |
| bbb | Produto B |
| ccc | Produto C |
Attributes Table:
| id_produto | atributo | valor |
|------------|----------|---------|
| aaa | cor | azul |
| aaa | tamanho | M |
| bbb | cor | preto |
| bbb | tamanho | P |
| ccc | cor | amarelo |
| ccc | tamanho | G |
and the following SQL query:
select
p.nome,
c.valor,
t.valor
from
Produto p,
Atributos c,
Atributos t
where
p.id = c.id_produto and
p.id = t.id_produto and
c.atributo = 'cor' and
t.atributo = 'tamanho'
Is there any way to do this select without duplicating the table attributes?
Edit # 1
Result:
| nome | cor | Tamanho |
|-----------|---------|---------|
| Produto A | azul | M |
| Produto B | preto | P |
| Produto C | amarelo | G |
Note: I can not change the structure of the tables, the actual database has several different types of attributes (dynamically generated) and thousands of records.