A表 B表
Id Name 。 Id 开头字母 AId
1 梦幻西游 。 1 M 1
2 魔兽世界 。 2 M 2
3 魔兽世界 。 3 M 3
4 梦幻西游 。 4 M 4
5 问道 。 5 W 5
有什么办法能根据开头字母查询Name的吗?比如根据M的话会查出4条记录。。就是重复的就不要。。就是根据M查询。。只查出梦幻西游,跟魔兽世界。2条记录。有人做过吗? A表的。是代表其他字段来的.
Id Name 。 Id 开头字母 AId
1 梦幻西游 。 1 M 1
2 魔兽世界 。 2 M 2
3 魔兽世界 。 3 M 3
4 梦幻西游 。 4 M 4
5 问道 。 5 W 5
有什么办法能根据开头字母查询Name的吗?比如根据M的话会查出4条记录。。就是重复的就不要。。就是根据M查询。。只查出梦幻西游,跟魔兽世界。2条记录。有人做过吗? A表的。是代表其他字段来的.
解决方案 »
- 修改表信息的时候,通过约束或事务验证进行过滤
- 求一条破坏性的SQL代码
- active transaction 无法清空数据库日志
- 孔老大,另开一贴求教!!
- 请教SQL查询 A列重复 且 B列互为相反数 方法
- 两个表中,查询到一条记录就返回继续下一条的查找,在这种情况下,如何提高Select的效率
- 高分求解:Sql Server 2005下schedule job时ftp不好用
- hp安装SQLServer2000需要在注册表中删除哪个文件,我现在安装不上?
- 我实在没辙了,求大神帮忙优化查询语句执行的速度
- 如何求每个工程的有效延期天数
- 一对多关联查询的sql写法,请大家帮忙,谢谢!
- 求一个查询连续断号的sql语句。
FROM a
JOIN b
ON a.id = b.aid
WHERE id = (
SELECT MAX(id)
FROM a t
WHERE name = a.name
)
AND b.开头字母='M'
IF OBJECT_ID('[a]') IS NOT NULL
DROP TABLE [a]
GO
CREATE TABLE [a] ([Id] [int],[Name] [nvarchar](10),[OtherCol] [nvarchar](10))
INSERT INTO [a]
SELECT '1','梦幻西游','....' UNION ALL
SELECT '2','魔兽世界','....' UNION ALL
SELECT '3','魔兽世界','....' UNION ALL
SELECT '4','梦幻西游','....' UNION ALL
SELECT '5','问道','....' UNION ALL
SELECT '5','问道','....'--> 生成测试数据表: [b]
IF OBJECT_ID('[b]') IS NOT NULL
DROP TABLE [b]
GO
CREATE TABLE [b] ([Id] [int],[开头字母] [nvarchar](10),[AId] [int])
INSERT INTO [b]
SELECT '1','M','1' UNION ALL
SELECT '2','M','2' UNION ALL
SELECT '3','M','3' UNION ALL
SELECT '4','M','4' UNION ALL
SELECT '5','W','5' UNION ALL
SELECT '5','W','5'--SELECT * FROM [a]
--SELECT * FROM [b]-->SQL查询如下:SELECT a.*
FROM a
JOIN b
ON a.id = b.aid
WHERE a.id = (
SELECT MAX(id)
FROM a t
WHERE name = a.name
)
AND b.开头字母='M'
/*
Id Name OtherCol
----------- ---------- ----------
3 魔兽世界 ....
4 梦幻西游 ....(2 行受影响)
*/