我有一个带有 large products
表和category
表的SQL Server数据库。
在product
表中,有一个category
列,其中包含相应类别的ID。
我要做的是在产品名称列和相应的类别名称上执行一次LIKE查询,并返回所有匹配项。
考虑要最小化服务器上的负载,我应该使用哪种方法?
编辑以改善此问题:
结果:
product1名称->红苹果catId-> 3(cat_id = 3,“最好的苹果”)
product2名称->青苹果catId-> 5(cat_id = 5,“好水果”)
product3名称->绿色香蕉catId-> 8(cat_id = 8,“苹果和香蕉”)
答案 0 :(得分: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%'
此代码将连接两个表,并返回名称与关键字匹配的产品,并返回其类别名称。您可以修改产品和类别的定义以包括所需的其他列。您可能还想在catid上添加FK约束。