LIKE COM INNER JOIN SQL

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

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

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

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar