Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jordan Pinheiro_147113

consulta em 3 tabelas e trazendo valores

Recommended Posts

Certo diego vou tentar te falar como funciona esse sistema de carrinho meu e ao final posto a modelagem.

 

1 - estou criando um sistema de pizzaria online, ontem numa tabela chamada produtos eu eu faço o resgitro dos mesmo

exemplo:

pro_id | pro_categoria | pro_nome            | pro_valor 
1      | 1             | pizza               | 15
2      | 2             | coca cola 2 litros  | 4.30

 

ai vem nessa minha tabela eu tenho produtos que n precisão de variação como coca-cola ai vai para tabela carrinho direto, mas produtos como pizza é preciso escolhe os sabores e afins para isso eu tenho uma tabela abaixo q segura as opções escolhidas

 

sev_id | sev_carrinho | sev_variacao | sev_valor
1      | 1            | 1            | 12.50
2      | 1            | 6            | 14.90
2      | 1            | 4            | 24.90

 

pronto agora meu carrinho fica assim

 

car_id | car_produto | car_quantidade | car_valor | car_sessao
1      | 1           | 2              | 9.90      | en27r87nv8479r74347ntf878o
2      | 2           | 1              | 4.30      | en27r87nv8479r74347ntf878o  

 

certo agora vem o pipino rsrs

 

se eu tive-se só o carrinho seria simples ficaria assim

 

SELECT SUM(car_quantidade * car_valor) as total FROM carrinho

ele pegaria 9.90 * 2 e somaria com 4.30 * 1

 

só q ai vem eu preciso que essa query minha vá até "segura_variacao" e pegue todos so sev_valor q pertencem a minha where car_id ou seja como mostrei no exemplo acima eu tenho 3

 

sev_id | sev_carrinho | sev_variacao | sev_valor
1      | 1            | 1            | 12.50
2      | 1            | 6            | 14.90
2      | 1            | 4            | 24.90

 

veja que o sev_carrinho é igual a car_id

 

o erro existe acho q porque quando eu tenho um produto em segura_variacao como pizza e outro não como coca cola ele trás um valor bem louco e outra tipo se eu tenho 2 pizzas e 1 coca cola ele multiplica tudo por 3 e não casa um independente por registro

 

espero q tenho entendido, já me reboli todo aqui e nada preciso de outro ponto de vista

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou com um pouco de sono, e juro que li 2x, mas não consegui entender.

Eu tenho quase certeza que você pode resolver isso facinho com um JOIN ou mesmo WHERE.

Vou te dar um exemplo de consulta pra você ver se consegue aproveitar a ideia no seu objetivo.

 

SELECT
`s`.`sev_id`			AS `sev_id`,
`s`.`sev_carrinho`		AS `sev_carrinho`,
`s`.`sev_variacao`		AS `sev_variacao`,
`s`.`sev_valor`			AS `sev_valor`,

`c`.`car_id`			AS `car_id`,
`c`.`car_produto`		AS `car_produto`,
`c`.`car_quantidade`		AS `car_quantidade`,
`c`.`car_valor`			AS `car_valor`,
`c`.`car_sessao`		AS `car_sessao`
FROM
`segura_variacao`		AS `s`,
`carrinho`			AS `c`
WHERE
`s`.`sev_carrinho` = `c`.`car_id`

 

Essa é uma relação interna que filtra os registros que fazem a relação que você citou (sev_carrinho=car_id).

Executa direto no seu phpmyadmin e você vai poder entender melhor como poderá aproveitar a ideia.

Dá pra relacionar mais tabelas, usando a mesma metodologia, e o SUM pode ser usado em qualquer campo, bastando seguir o padrão. Campos da tabela segura_variacao, você começa com `s`, da tabela carrinho você começa com `c`. Exemplo: SUM(`c`.`car_valor`) AS `valor`.

O 'AS' serve como apelido para um campo.

 

Espero que meu pitaco tenha ajudado. []'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.