私は本を読んでいます。「Inside Microsoft SQL Server 2008: T-SQL Querying*」という本を読んでいます。この例では、2 つのテーブル間で結合を行うと、最初にデカルト積が発生し、次に ON 条件でフィルタリングされ、次に " RIGHT"、"LEFT"、または "FULL" 結合タイプ。
その本の例から、
SELECT C.customerid, COUNT(O.orderid) AS numorders
FROM dbo.Customers AS C
LEFT OUTER JOIN dbo.Orders AS O
ON C.customerid = O.customerid
Customer テーブルには 4 つの行があり、Orders には 7 つの行があります。したがって、最初のデカルト積は 4*7 = 28 行を生成し、次に "ON" 句と LEFT OUTER によってフィルターを取得します。
これは、使用する結合の種類に関係なく、テーブル間でデカルト積が発生するたびに発生するということですか? では、なぜ異なる結合間でパフォーマンスの違いが見られるのでしょうか?