34,576
社区成员
发帖
与我相关
我的任务
分享
--加个Group By试试,
SELECT * FROM [A] WHERE [ID] IN (SELECT [AID] FROM [B] GROUP BY [AID]) ORDER BY [ID]
SELECT TOP (1) * FROM (
SELECT * FROM [A] WHERE [TEL1] = 8000000
UNION ALL
SELECT * FROM [A] WHERE [TEL2] = 8000000
UNION ALL
SELECT * FROM [A] WHERE [TEL3] = 8000000
UNION ALL
SELECT * FROM [A] WHERE [TEL4] = 8000000
) A
SELECT A.*,B.* FROM [A]
INNER JOIN [B] ON A.[ID]=B.[AID]
AND B.[NDATE]>'2008-1-1'
AND B.[NDATE] <'2008-8-1'
AND B.[PAYTYPE]=1
ORDER BY A.[ID] DESC
-- ① 这个应该比in好用
select a.* from a
inner join b on a.id = b.aid
order by a.id
-- ② 试试这个
select top 1 * from
(
select top 1 * from a where tel1 = 8000000 union all
select top 1 * from a where tel2 = 8000000 union all
select top 1 * from a where tel3 = 8000000
) tmptb
-- ③ 好像这个没什么可以优化的了