INNER JOIN in the same table

1
SELECT Agendamento.E3TimeStamp AS Data,Agendamento.Lote, Produtos_values.name as NomeProduto, Produtos_ValueData.TemplateID AS mp_produto  
FROM produtos_values  
inner join produtos_valuedata on produtos_values.id = produtos_valuedata.valueid,agendamento

This query works fine, but I need to do another Inner Join using the same table_products_values like this:

inner join produtos_values on produtos_values.name = agendamento.produto

separated they work but not together, how can I make both work?

    
asked by anonymous 12.07.2017 / 16:36

2 answers

3

You can do inner join with the same table using different aliases

example:

SELECT 
    Agendamento.E3TimeStamp AS Data,Agendamento.Lote, 
    Produtos_values.name as NomeProduto, 
    Produtos_ValueData.TemplateID AS mp_produto

FROM produtos_values pv
inner join produtos_valuedata pvd 
    on pv.id = pvd.valueid.agendamento
inner join produtos_values pvs
    on pv.name = pvs.agendamento.produto;

Aliases are like nicknames, consider so.

    
12.07.2017 / 16:49
0

Unnecessary to make a inner join with the same table. Use Where :

SELECT Agendamento.E3TimeStamp AS Data,
Agendamento.Lote, Produtos_values.name as NomeProduto,
Produtos_ValueData.TemplateID AS mp_produto
FROM produtos_values
INNER JOIN produtos_valuedata
on produtos_values.id = produtos_valuedata.valueid,agendamento
WHERE produtos_values.name = agendamento.produto;
    
14.07.2017 / 00:55