Concatenar resultado de dois selects
09/02/2016
0
Boa tarde, Estou com uma dificuldade para mostrar o resultado do select da maneira que quero. vou explicar primeiro o que tenho e depois o que quero, agradeço se alguém poder me ajudar.
Tenho duas tabelas no banco de dados:
produto_tipo: id_produto_tipo, tipo_produto e produto_marca: id_produto_marca e nome_mmarca.
Fiz o select unindo as duas tabelas para que me mostrasse o resultado das duas:
<select name="carne">
<option value="vazio"> </option>
<?php
$sql = "(select tipo_produto from produto_tipo) union (select nome_marca from produto_marca)";
$result = mysqli_query($conexao, $sql);
while($linha = mysqli_fetch_assoc($result)){
?>
<option value=" <?php echo $linha['tipo_produto'].$linha['nome_marca']; ?> ">
<?php echo utf8_decode($linha['tipo_produto'].$linha['nome_marca']); ?>
</option>
<?php } ?>
</select>
Até ai tudo bem, mas ela não está mostrando o resultado concatenado.
está mostrando assim:
arroz
tio jõao
urmado
preciso que mostre assim:
arroz tio jõao
arroz urbano
sendo que o resultado da primeira parte (arroz) vem de uma tabela e o resultado da segunda parte(tio joao) vem da segunda tabela.
Tenho duas tabelas no banco de dados:
produto_tipo: id_produto_tipo, tipo_produto e produto_marca: id_produto_marca e nome_mmarca.
Fiz o select unindo as duas tabelas para que me mostrasse o resultado das duas:
<select name="carne">
<option value="vazio"> </option>
<?php
$sql = "(select tipo_produto from produto_tipo) union (select nome_marca from produto_marca)";
$result = mysqli_query($conexao, $sql);
while($linha = mysqli_fetch_assoc($result)){
?>
<option value=" <?php echo $linha['tipo_produto'].$linha['nome_marca']; ?> ">
<?php echo utf8_decode($linha['tipo_produto'].$linha['nome_marca']); ?>
</option>
<?php } ?>
</select>
Até ai tudo bem, mas ela não está mostrando o resultado concatenado.
está mostrando assim:
arroz
tio jõao
urmado
preciso que mostre assim:
arroz tio jõao
arroz urbano
sendo que o resultado da primeira parte (arroz) vem de uma tabela e o resultado da segunda parte(tio joao) vem da segunda tabela.
Julia
Curtir tópico
+ 0
Responder
Posts
09/02/2016
Jothaz
O post esta muito confuso o que dificulta a ajuda.
Vamos tentar esclarecer qual o cenário.
Hoje você tem esta duas tabelas:
produto_tipo:
--id_produto_tipo
--tipo_produto
produto_marca:
--id_produto_marca
--nome_marca
O UNION não vai resolver o seu problema, pois o escopo dele é outro.
Para conseguir o que você quer você deve remodelar seu banco de dados para poder utilizar o INNER JOIN.
Então você deve remodelar e criar uma outra tabela, assim você poderá vários tipos de várias marcas (NXN).
produto_tipo:
--id_tipo
--tipo_produto
produto_marca:
--id_marca
--nome_marca
produto_tipo_marca:
--id_tipo
--id_marca
E então utilizar o INNER JOIN:
SELECT T.TIPO_PRODUTO, M.NOME_MARCA
FROM PRODUTO_TIPO T
INNER JOIN PRODUTO_TIPO_MARCA TM ON TM.TIPO = T.TIPO
INNER JOIN PRODUTO_MARCA M ON M.ID_MARCA = TM.ID_MARCA
Vamos tentar esclarecer qual o cenário.
Hoje você tem esta duas tabelas:
produto_tipo:
--id_produto_tipo
--tipo_produto
produto_marca:
--id_produto_marca
--nome_marca
O UNION não vai resolver o seu problema, pois o escopo dele é outro.
Para conseguir o que você quer você deve remodelar seu banco de dados para poder utilizar o INNER JOIN.
Então você deve remodelar e criar uma outra tabela, assim você poderá vários tipos de várias marcas (NXN).
produto_tipo:
--id_tipo
--tipo_produto
produto_marca:
--id_marca
--nome_marca
produto_tipo_marca:
--id_tipo
--id_marca
E então utilizar o INNER JOIN:
SELECT T.TIPO_PRODUTO, M.NOME_MARCA
FROM PRODUTO_TIPO T
INNER JOIN PRODUTO_TIPO_MARCA TM ON TM.TIPO = T.TIPO
INNER JOIN PRODUTO_MARCA M ON M.ID_MARCA = TM.ID_MARCA
Responder
Clique aqui para fazer login e interagir na Comunidade :)