it is possible to join one or more columns that have the same id in mysql

Asked

Viewed 29 times

0

I have a customer table, a employees table, products, a sales table and a table to link sales with products. my doubt is when do I select

SELECT idvendas,data_da_venda,valortotal,clientes.Nome as cliente,colaboradores.Nome as vendedor, produtos.Nome  from vendas
INNER JOIN produtos_has_vendas ON vendas.idvendas = produtos_has_vendas.vendas_idvendas 
INNER JOIN produtos ON produtos_has_vendas.Produtos_SKU = produtos.SKU
INNER JOIN colaboradores ON colaboradores.idcolaboradores = vendas.colaboradores_idcolaboradores 
INNER JOIN clientes ON clientes.idclientes = vendas.clientes_idclientes 
where data_da_venda >= curdate() and vendas.Usuario_idUsuário = 1

he returns

inserir a descrição da imagem aqui

it is possible to "join" the two product names of the Name column as long as the sales have the same value ?

I tried Group table id with group by

    SELECT idvendas,data_da_venda,valortotal,clientes.Nome as cliente,colaboradores.Nome as vendedor, produtos.Nome  from vendas
INNER JOIN produtos_has_vendas ON vendas.idvendas = produtos_has_vendas.vendas_idvendas 
INNER JOIN produtos ON produtos_has_vendas.Produtos_SKU = produtos.SKU
INNER JOIN colaboradores ON colaboradores.idcolaboradores = vendas.colaboradores_idcolaboradores 
INNER JOIN clientes ON clientes.idclientes = vendas.clientes_idclientes 
where data_da_venda >= curdate() and vendas.Usuario_idUsuário = 1
group by idvendas

return inserir a descrição da imagem aqui

however it returns only one of the product names in the Name column

1 answer

0

You can use the function GROUP_CONCAT.

See the example below:

SELECT idvendas,
       data_da_venda,
       valortotal,
       clientes.nome      AS cliente,
       colaboradores.nome AS vendedor,
       group_concat(produtos.nome) nomes
  FROM vendas
 INNER JOIN produtos_has_vendas
    ON vendas.idvendas = produtos_has_vendas.vendas_idvendas
 INNER JOIN produtos
    ON produtos_has_vendas.produtos_sku = produtos.sku
 INNER JOIN colaboradores
    ON colaboradores.idcolaboradores = vendas.colaboradores_idcolaboradores
 INNER JOIN clientes
    ON clientes.idclientes = vendas.clientes_idclientes
 WHERE data_da_venda >= curdate()
   AND vendas.usuario_idusuário = 1
 GROUP BY idvendas

See an example running here.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.