Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com a tarefa de elaborar uma leitura no banco de dados e não estou conseguindo achar uma solução para a instrução de leitura.
Basicamente tenho uma tabela que de produtos, nela tenho uma coluna para registrar o vendedor e outra para registrar o comprador assim associar esses valores com a tabela de usuários.
Digamos assim:
SELECT
produto.id,
produto.vendedor,
produto.comprador,
usuarios.id,
usuarios.nome
FROM
produto
INNER JOIN
usuarios
ON
produto.vendedor = usuarios.id
Com isso tenho a informação do vendedor na tabela de usuários, mas como faria para obter os dados do comprador também?
Uma forma seria executar dois joins na tabela de usuários porém acho que assim me parece mais gabiarra do que o jeito mais coeso de se fazer (e na verdade foi gabiarra sim porque não sei como proceder)
Tipo assim:
SELECT
produto.id,
produto.vendedor,
produto.comprador,
a.id AS a_id,
a.nome AS a_nome,
b.id AS b_id,
b.nome AS b_nome
FROM
produto
INNER JOIN
usuarios AS a
ON
produto.vendedor = a.id
INNER JOIN
usuarios AS b
ON
produto.comprador = b.id
Tem outro jeito? Como?
@Motta Meio estrando não é?
De fato sempre quando precisei fazer algo semelhante, fazia duas querys e unificava os resultados em um único array no PHP.
Mas a questão que acho poderia existir outra forma é: Uma vez que já fiz um JOIN na tabela de usuários, poderia existir algum comando "que desconheço" para relacionar as duas colunas diferentes para um único JOIN.
Não conheço melhor forma nestes casos que instanciar a tabela duas vezes.
Realmente não existe outra alternativa a não ser a proposta inicial.
Obrigado pela ajuda @Motta
Não é gambiarra , é a forma correta visto que "vendedor"e "comprador" se ligam à tabela ""usuarios".