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 约束。
我有一个 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 约束。