GARANTIR DESCONTO

Fórum LIKE COM INNER JOIN SQL #589698

11/12/2017

0

Eu tenho umas tabelas com as seguintes colunas

TB_PRODUTO, [ ID ], [ NAME ]
TB_CATEGORIA, [ ID ], [ NAME ], [ AMOUNT ], [ PRICE ], [ ID_CATEGORIES ]

O exercício pede "Exiba o código e o nome dos produtos, cuja categoria inicie com 'sal'"

Abaixo esta o código que eu tente, mais ele esta pegando o "nome" da tabela products e não do no like

SELECT C.ID, P.NAME 
FROM CATEGORIES C 
INNER JOIN PRODUCTS P ON C.ID = P.ID
WHERE C.NAME LIKE  '%sis%';
Salomão Souza

Salomão Souza

Responder

Post mais votado

12/12/2017

Bom dia,
você elaborou a estrutura de tabelas incorretamente, deveria ser algo como:

TB_CATEGORIA, [ ID ], [ NAME ],
TB_PRODUTO, [ ID ], [ NAME ], [ AMOUNT ], [ PRICE ], [ ID_CATEGORIES ]


SELECT 
    PRODUCTS.ID, 
    PRODUCTS.NAME
FROM
    PRODUCTS
INNER JOIN 
    CATEGORIES  ON PRODUCTS.ID_CATEGORIES = CATEGORIES .ID
WHERE 
    CATEGORIES .NAME LIKE  'sal%';

Johnny

Johnny
Responder

Gostei + 1

Mais Posts

11/12/2017

Nelson Erick

Oi amigo, não entendi muito bem essas tabelas, ambas precisam estar relacionadas de alguma maneira, ou melhor, ter uma chave estrangeira. A chave estrangeira é CATEGORIES.ID mesmo? Nesse caso a CATEGORIES.ID_CATEGORIES é a chave primária, certo?
Responder

Gostei + 0

12/12/2017

Luiz Vichiatto

Como o nosso colega colocou, você está relacionando coisas diferentes, quando ocorrer que o ID de categoria for igual ao ID de produto você terá a relação dos conjuntos, lembra-se das aulas de conjuntos (união, intersecção e etc.), então é por este caminho.
É muito importante que tenha isto bem claro, são "conjuntos" é assim que irá tratá-los.

Oi amigo, não entendi muito bem essas tabelas, ambas precisam estar relacionadas de alguma maneira, ou melhor, ter uma chave estrangeira. A chave estrangeira é CATEGORIES.ID mesmo? Nesse caso a CATEGORIES.ID_CATEGORIES é a chave primária, certo?
Responder

Gostei + 0

12/12/2017

Johnny

Bom dia,
você elaborou a estrutura de tabelas incorretamente, deveria ser algo como:

TB_CATEGORIA, [ ID ], [ NAME ],
TB_PRODUTO, [ ID ], [ NAME ], [ AMOUNT ], [ PRICE ], [ ID_CATEGORIES ]


SELECT 
    PRODUCTS.ID, 
    PRODUCTS.NAME
FROM
    PRODUCTS
INNER JOIN 
    CATEGORIES  ON PRODUCTS.ID_CATEGORIES = CATEGORIES .ID
WHERE 
    CATEGORIES .NAME LIKE  'sal%';



Lembrando que o LIKE funciona da seguinte forma, se você quiser buscar pelo inicio do nome utilize apenas um símbolo de percentual, veja abaixo:

NOME LIKE 'sal%'

Agora caso você deseje pesquisar em qualquer parte do nome, utilize o seguinte:

NOME LIKE '%sal%'
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar