我有两张表如下:
product category(t1): id name
product master(t2): id name category
现在我有以下查询仅在一个查询中获取产品和相关的类别名称:
select
*,
(select name from t1 where t1.id=t2.category) as 'category'
from
t2
这是完美的。现在我需要做的是,对结果集执行过滤操作。请考虑以下内容:
select
*,
(select name from t1 where t1.id=t2.category) as 'category'
from
t2
where
t2.name like '%keyword%' or 'category' like '%keyword%'
现在只有当我输入名称列上的关键字但未根据类别名称执行搜索时,此功能才有效。我有什么想法吗?
BTW:我正在使用ASP.NET 3.5和SQL Server 2005 Express Edition。
感谢您的时间和支持。非常感谢提前。
答案 0 :(得分:4)
JOINs是你的朋友:)
SELECT t2.*, t1.name
FROM t2
JOIN t1 ON t2.category = t1.id
WHERE t2.name LIKE '%keyword%'
OR t1.name LIKE '%keyword%'
答案 1 :(得分:0)
你可以试试这个:
SELECT t2.*, t1.name
FROM t2,
t1 ON t2.category = t1.id
WHERE t2.name LIKE '%keyword%'
OR t1.name LIKE '%keyword%'