SQL 服务器查询多个表

SQL Server query on multiple tables

我有一个 SQL 服务器数据库 large products table 和 category table .

product table 中有一个category 列,其中包含相应类别的ID。 我要做的是对产品名称列和相应的类别名称以及 return 所有匹配项执行 LIKE 查询。

考虑到我想尽量减少服务器上的负载,我应该使用哪种方法?

编辑以改进此问题:

结果

product1名称->红苹果catId->3 (cat_id = 3, "best apples")

product2名称->青苹果catId->5 (cat_id = 5, "good fruits")

product3 name->green banana catId->8 (cat_id = 8, "apples & bananas")

如果我理解正确的话,这会对你有所帮助 -

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%'

此代码将连接两个表和 return 名称与关键字匹配的产品以及 return 它们的类别名称。您可以修改产品和类别的定义以包括您想要的其他列。您可能还想在 catid 上添加 FK 约束。