Запрос SQL Server к нескольким таблицам

У меня есть база данных SQL Server с таблицей большойproducts и таблицей category.

В таблице product есть столбец category, который содержит идентификатор соответствующей категории. Что мне нужно сделать, так это выполнить запрос LIKE как для столбца имени продукта, так и для соответствующего имени категории и вернуть все совпадения.

Какой подход мне следует использовать, учитывая, что я хочу минимизировать нагрузку на сервер?

РЕДАКТИРОВАТЬ, чтобы улучшить этот вопрос:

Результаты:

product1 name->red apple catId->3 (cat_id = 3, "лучшие яблоки")

product2 name->зеленое яблоко catId->5 (cat_id = 5, "хорошие фрукты")

product3 name->зеленый банан catId->8 (cat_id = 8, "яблоки и бананы")

что ты уже испробовал?

Zeina 06.04.2019 10:54

опубликуйте свой текущий подход.

UsmanMirza 06.04.2019 10:55

легкий. Просто соедините две таблицы и используйте аналогичную опцию

It's a trap 06.04.2019 11:38
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я правильно понимаю, это поможет вам -

create table products(
ID INT PRIMARY KEY,

[Name] NVARCHAR(MAX),
[CatId] INT
)

CREATE TABLE CATEGORIES(
ID INT PRIMARY KEY,
[Name] NVARCHAR(MAX)
)

insert into CATEGORIES values(1, 'Laptop')
insert into CATEGORIES values(2, 'Fruit')

insert into products values (2, 'Washington Apple', 2)
insert into products values (1, 'Apple mac book pro', 1)    

select * from products

SELECT p.[Name] as ProductName, c.[Name] as CategoryName FROM products p LEFT JOIN CATEGORIES c ON p.CatId = c.ID Where p.[Name] like '%apple%'

Этот код объединит две таблицы и вернет продукты, название которых соответствует ключевому слову, а также вернет названия их категорий. Вы можете изменить определение продуктов и категорий, чтобы включить другие нужные вам столбцы. Вы также можете добавить ограничение FK на catid.

Это делает то, что вы описали, очень хорошо. Спасибо, но то, чего я пытался достичь, было другим, но я думаю, что это хорошее начало.

Carondimonio 08.04.2019 09:59

Я улучшу свой вопрос

Carondimonio 08.04.2019 10:08

Другие вопросы по теме

Похожие вопросы

Как отличить нулевое значение от несовпадающей записи и нулевое значение от несуществующей записи в левом соединении?
Я не знаю, что не так с моей базой данных. Отображает ошибки
Предупреждение об объединении столбцов INT: преобразование типа в выражении вызывает предупреждения CardinalityEstimate в плане выполнения
Ограничение записей в соединении «один ко многим»
SQL Server 2014 - Группа суммирования рабочих часов по дневному/ночному времени, неделе/выходным дням, обычному/сверхурочному времени
Преобразование нестандартных мм:сс в чч:мм:сс с помощью T-SQL
Есть ли проблема с эффективностью моего запроса на выбор средних строк?
Как написать запрос «GROUP BY», чтобы получить все роли, назначенные пользователю для данного приложения
Наиболее оптимальный способ приоритизации записей на основе битовых столбцов
Определить средние значения магазина в штате