Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server对多个表的查询_Sql Server_Database_Sql Like - Fatal编程技术网

Sql server SQL Server对多个表的查询

Sql server SQL Server对多个表的查询,sql-server,database,sql-like,Sql Server,Database,Sql Like,我有一个SQL Server数据库,其中有一个大型的产品表和一个类别表 在产品表中有一个类别列,其中包含相应类别的ID。 我要做的是对product name列和相应的category name执行一个LIKE查询,并返回所有匹配项 考虑到我希望最小化服务器上的负载,我应该使用什么样的方法 编辑以改进此问题: 结果: 产品名称->红苹果catId->3(类别id=3,“最佳苹果”) 产品名称->青苹果catId->5(类别id=5,“好水果”) 产品3名称->绿色香蕉catId->8(cat_i

我有一个SQL Server数据库,其中有一个大型的
产品
表和一个
类别

产品
表中有一个
类别
列,其中包含相应类别的ID。 我要做的是对product name列和相应的category name执行一个LIKE查询,并返回所有匹配项

考虑到我希望最小化服务器上的负载,我应该使用什么样的方法

编辑以改进此问题:

结果:

产品名称->红苹果catId->3(类别id=3,“最佳苹果”)

产品名称->青苹果catId->5(类别id=5,“好水果”)


产品3名称->绿色香蕉catId->8(cat_id=8,“苹果和香蕉”)

如果我理解正确,这将帮助您-

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约束

到目前为止你尝试了什么?发布你当前的方法。简单。只需将两个表连接起来,并使用like选项。这很好地实现了您所描述的功能。谢谢你,但我试图实现的是不同的,但我认为这是一个好的开始。我会改进我的问题