CREATE TABLE #A_TABLE
(
ID int,
NAME nvarchar(50)
)
CREATE TABLE #B_TABLE
(
ID int
)
INSERT INTO #A_TABLE
(
ID,
NAME
)
SELECT 1,'A'
UNION ALL SELECT 2,'B'
UNION ALL SELECT 3,'C'
UNION ALL SELECT 4,'D'
UNION ALL SELECT 5,'E'
UNION ALL SELECT 6,'F'
INSERT INTO #B_TABLE
(
ID
)
SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
想要結果:
SELECT
*
FROM
#A_TABLE
WHERE
#A_TABLE.ID NOT IN (SELECT ID FROM #B_TABLE)
我想過濾A表中的資料,除了上面的子查詢,還有哪些更高效的查詢方法?
uj5u.com熱心網友回復:
SELECT *
FROM #A_TABLE AS a
WHERE NOT EXISTS (SELECT 1 FROM #B_TABLE WHERE ID=a.ID);
uj5u.com熱心網友回復:
查看執行計劃,條件列沒有建索引時就建上uj5u.com熱心網友回復:
SELECT a.* FROM #A_TABLE a LEFT JOIN #B_TABLE b ON a.ID=b.ID WHERE b.ID IS NULL
uj5u.com熱心網友回復:
20000條資料左右,3樓的寫法效率高點轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/74916.html
標籤:基礎類
上一篇:PB怎么呼叫PB生成的DLL
下一篇:sql那里錯啦。查不出資料
