2 Sub Query 伎 #
れ 襯 覲伎. 朱 蟆曙磯.
SELECT *
FROM Product
WHERE ProductID IN
(SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000)
--'Product' 企. れ 139, 朱Μ 所鍵 299, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
伎 貎朱Μ襯 所 覲貅覲伎. 所襷 覲貅磯磯 襷 覲螳 殊企.
SELECT *
FROM Product
WHERE ProductID IN
(SELECT ProductID + '' --蠍
FROM SalesOrderDetail
WHERE SalesOrderID > 10000)
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'Product' 企. れ 1, 朱Μ 所鍵 29, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
Product 企 朱Μ 所鍵 螳 29 蟆 Product 企 覈 29 伎 れ願 蠍 覓語 蟆企. 語 企慨.
-999
SELECT * FROM Product
--'Product' 企. れ 1, 朱Μ 所鍵 29, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--60452
SELECT ProductID + '' FROM SalesOrderDetail WHERE SalesOrderID > 10000
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
貎朱Μ 覯讌 貎朱Μ螳 I/O螳 蟆 覲 . 豌伎 觜 觜蟲 覲 覯讌 貎朱Μ螳 襴る 蟆 . 蠏碁 豌 覯讌 貎朱Μ ろ螻 覲企 Stream Aggregate 一一螳 . 一一 觜蟲
ProductID Distinct 襯 覲伎ロ蠍 伎 焔 蟆企. 讀, 螳 IN 一一 螳 觜蟲譟郁唄 蠍 覓語 讌 一一朱 Distinct襯 覲伎ロ 蟆螻 螳.
讀, WHERE 譟郁唄 れ螻 螳 覦覲給 蟆螻 螳.
SELECT *
FROM Product
WHERE ProductID = 8 OR ProductID = 8 OR ProductID = 8 OR ProductID = 8
OR ProductID = 9 OR ProductID = 9 OR ProductID = 9 OR ProductID = 9
願 螳 譟郁唄 螻伎 覦覲牛蟆 覩襦 願 Distinct 螳螻 螳. 蠏碁覩襦 Stream Aggregate螳 螳 狩蟆 襷 蟆企.
3 Sub Query襯 Join朱 覦蠑瑚鍵 #
觚貎朱Μ 譟一語朱 覦蠖 り . 貎朱Μ襯 譟一語朱 覦蠑語企慨.
SELECT A.*
FROM Product A INNER JOIN SalesOrderDetail B
ON A.ProductID = B.ProductID + ''
AND B.SalesOrderID > 10000
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'Product' 企. れ 1, 朱Μ 所鍵 29, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
ろ螻螻 朱Μ 所鍵 螳. 蠏碁 蟆郁骸螳 螳螳? 蟆郁骸螳 豌蟆 襷 蟆企. 覓伎 覈視蟾? 旧 企 襷. 觚貎朱Μ 蟆郁骸螳 60452 企襦 1:M 譟一語 M襷 蟆郁骸螳 る 蟆 轟壱. 蠏碁 Distinct 覃 讌 螻 螳 DISTINCT襯 SELECT 覿 l.
SELECT DISTINCT A.*
FROM Product A INNER JOIN SalesOrderDetail B
ON A.ProductID = B.ProductID + ''
AND B.SalesOrderID > 10000
--'Product' 企. れ 139, 朱Μ 所鍵 299, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
ろ螻 磯Μ螳 豌 覯讌 覺る 貎朱Μ ろ螻朱 覲 覯碁. 朱 豌 蟆郁骸襯 襴危 螳 る 蟇碁Υ 蟆企 觜螳. MSSQL Server 譟一語 蠍 Stream Aggregate襦 譴螳 蟆郁骸襯 譴覯碁. 覯 . れ襦 貎朱Μ れ螻 螳 SQL 燕 蟆螻 螳.
SELECT A.*
FROM Product A INNER JOIN (SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000
GROUP BY ProductID) B
ON A.ProductID = B.ProductID
蠏碁 磯Μ螳 燕 覯讌 觚貎朱Μ 蟆郁骸螳 れ . 蠏碁る 牛磯伎 觜 螻一 朱 譯手鍵 A讓曙 Suppressing覃 A讓暑 曙伎 螻, 蠏碁蟆 覃 蟆郁骸螳 讌 郁屋 襷殊 139覯 れ朱 曙伎 る 蟆郁骸螳 .
-- B 讌
SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000
GROUP BY ProductID
SELECT A.*
FROM Product A INNER JOIN (SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000
GROUP BY ProductID) B
ON A.ProductID + '' = B.ProductID
OPTION (FORCE ORDER, LOOP JOIN)
--'Worktable' 企. れ 998, 朱Μ 所鍵 1139, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'Product' 企. れ 1, 朱Μ 所鍵 29, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
SELECT 139 * 999
--138861
I/O 覲企 B 讌 覯 れ 螻, Worktable 998覯 れ 朱襦 Product 豐 蟇伎 999 覿. MSSQL Server 牛磯伎 B 讌 999覯 れ 碁企襦 Tempdb 企 襷れ ロ . 願 Nested Loop Join 伎 覩襦 一危磯ゼ 螻 覦碁讌 蟆 蠍 企. 襷 螳 企 螻伎 れる れ Lock 蟇碁 るジ 貎朱Μ レ 譴 蠍 覓語企. 麹 觜企.
覓朱 企 螻殊 蠍 伎 碁ゼ . 蠏碁覩襦 碁ゼ 蟇壱覃 Merge Join朱 襴 襯 . 覃 Product 企
ProductID 企ろ磯 碁煙り ″ 蠍 覓語 企 願, B讌 GROUP BY襦 誤 蟶朱 蠍 覓語企. れ襦 ろ 覲企 Merge Join朱 襴 蟆 .
SELECT A.*
FROM Product A INNER JOIN (SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000
GROUP BY ProductID) B
--'Product' 企. れ 1, 朱Μ 所鍵 29, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'SalesOrderDetail' 企. れ 1, 朱Μ 所鍵 227, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
磯Μ螳 襦 . 讌 Compute Scalar 一一螳 蟆朱 願 A.
ProductID + '' 一一企襦 蟆曙一 . 伎 覿 . 伎 蠍碁 . 一危一 朱讌 朱襦 襷譟燕 襷 焔レ . 蠏碁 一危郁 貉れ螻
SalesOrderID > 10000 譟郁唄 譯 覲 譟郁唄 螳 伎る ろ螻 れ 覲 .
襷 I/O襯 螻 旧螳 觜襯 蟆曙磯 . 企 蟆 I/O 觜 襷螻 るジ 郁 レ 殊 る 蟆企. 覯 磯殊 旧螳 谿願 . Merge Join朱 ろ螻 蟆曙 れ 伎 譴螳 企朱 Lock 蟇瑚 る I/O 譴企 蟆覲企 企ゼ 螳伎 蟆企. 蠏碁覩襦 磯Μ れ 貎朱Μ襯 豕朱 .
--1
SELECT *
FROM Product
WHERE ProductID IN
(SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000)
--2
SELECT A.*
FROM Product A INNER JOIN (SELECT ProductID
FROM SalesOrderDetail
WHERE SalesOrderID > 10000
GROUP BY ProductID) B
ON A.ProductID = B.ProductID
貎朱Μ ろ螻 螳.
4 蟯 觚 貎朱Μ #
蟯觚貎朱Μ 覃 貎朱Μ螳 襾殊 渚讌螻 觚貎朱Μ襦 郁屋 襯 襷. 讀, 覃 貎朱Μ 螳螳 襷 觚貎朱Μ螳 貎朱Μ襯 覩誤. れ螻 螳 蟆曙磯 蟯觚貎朱Μ 企.
USE pubs
SELECT au_lname, au_fname
FROM authors
WHERE 100 IN
(SELECT royaltyper
FROM titleauthor
WHERE titleauthor.au_ID = authors.au_id)
--'authors' 企. れ 9, 朱Μ 所鍵 18, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
--'titleauthor' 企. れ 1, 朱Μ 所鍵 2, 覓朱Μ 所鍵 0, 覩碁Μ 所鍵 0.
願 Suppressing螻 螳 蠍磯朱 觚貎朱Μ襯 襾殊 . 郁屋螻襴螳 au_id螳 覃語深襴 蠍 覓語 貎朱Μ襯 襾殊 ろ 螳 . IN 一一 朱 Stream Aggregate 一一襯 れ 覲 . 貎朱Μ 蟆郁骸螳 9螳 企襦 authors 企 9覯 Index Seek 蟆 覲 . 伎 蟯觚貎朱Μ襯 蟆曙磯 . 蠏碁讌襷 覿覿 蟆曙磯 蟯觚貎朱Μ襯 讌 蟆曙郁 襷 . れ螻 螳 蟆曙 覿覿 覿 蟯 觚 貎朱Μ襦 誤 蠍 蟆企.
select (select count(*) + 1 from titles b where a.title_id > b.title_id) 'id', title_id
from titles a
order by 1
--'titles' 企. れ 19, 朱Μ 所鍵 37, 覓朱Μ 所鍵 3, 覩碁Μ 所鍵 0.
--企 螻 螳 譬襯 蟯觚貎朱Μ 覿燕[* >, <, >=, <=]螳 一危一 郁屋
--貉れ襯 襭 觜襯 蟆曙郁 覿覿企.
I/O 覲企 豌 19覯 れ . 譟一語企襦 覯 曙朱, 襾語 18覯 SELECT 觚貎朱Μ 曙 蟆企. 一危郁 朱 讌 焔レ姶襯 覲伎伎 讌襷 一危郁 企襦 焔レ姶 蠍一蠍朱 企. 蟆曙磯 朱覯碁ゼ 襷り鍵 蟆企. 谿朱Μ 企 蟆曙磯朱 企 IDENTITY() 襯 伎 蟆 .