Как запросить и вернуть все сведения, в отношении продукта?


у Меня есть следующая проблема, и я собираюсь задать вопрос таким образом, дидактические, что может быть полезно для всех пользователей, которые могут понадобиться. Хочу, чтобы выполнить запрос SQL который отвечает всем требованиям и возвращаемые значения.

tbl_cor в этом случае, чтобы зарегистрировать продукт, используя все свои возможности цвета. Это будет сделано в другой форме, куда drop возвращает все продукты, чтобы выбрать один из них и более поздней версии реестр возможных цветов.

tbl_produto
    id_prod
    nome_prod
    preco_prod
    cat_prod      <----- id da categoria
    datacad_prod

tbl_categoria
    id_cat
    nome_cat      

tbl_cor
    id_prod
    cor_prod      <----- string de um dropdown do form

Например:

produto Комбе от categoria внедорожник доступно в cores зеленый, синий, белый, желтый. Как вернуть через запрос SQL эти данные?

Author: Marcos Vinicius, 2014-11-26

3 answers

Вы можете использовать функцию GROUP_CONCAT возвращать более одной записи в одном столбце. Как у вас есть несколько цветов для одного продукта вместо того, чтобы вернуть одну строку для каждого цвета, вы можете быть возвращение только одну строку с одним столбцом, который содержит все цвета.

SELECT
   tbl_produto.nome_prod,
   tbl_categoria.nome_cat,
   GROUP_CONCAT(tbl_cor.cor_prod) AS Cor
FROM tbl_cor
INNER JOIN tbl_produto ON tbl_produto.id_prod = tbl_cor.id_prod  
INNER JOIN tbl_categoria ON tbl_produto.cat_prod = tbl_categoria.id_cat
WHERE tbl_produto.nome_prod = 'KOMBE'
GROUP BY (tbl_produto.id_prod, tbl_categoria.id_cat)

Я Надеюсь, что помог.

 2
Author: TonCunha, 2014-11-26 12:29:08

Следующий запрос возвращает все сведения о товаре, свои цвета и категории.

SELECT *
FROM tbl_produto AS produtos,
     tbl_categ AS categorias,
     tbl_cor AS cores
WHERE produtos.cat_prod = categorias.id_cat AND
      produtos.id_prod = cores.id_prod
ORDER BY nome_prod;
 3
Author: Guilherme Portela, 2014-11-26 11:08:36

Добрый день, не понимаю, если вы хотите, чтобы только один запрос, или что-то более сложное, я сделал этот запрос здесь:

SELECT nome_prod, nome_cat, cor_prod
FROM tbl_produto
INNER JOIN tbl_categoria
ON tbl_produto.cat_prod = tbl_categoria.id_cat
INNER JOIN tbl_cor
ON tbl_produto.id_prod = tbl_cor.id_prod
WHERE tbl_produto.nome_prod = 'KOMBE'

Надеюсь, что это поможет, что-нибудь прокомментировать.

 2
Author: LucasMotta, 2014-11-26 11:07:30