【发布时间】:2012-06-01 11:05:14
【问题描述】:
我有两张桌子要连接在一起。
SELECT Col3, tab1.Col1, tab1.Col2 FROM
(SELECT Col1,Col2
FROM Table1
GROUP BY Col1,Col2) tab1
LEFT JOIN
(SELECT Col3, Col1, Col2
FROM Table2
GROUP BY Col3, Col1, Col2) tab2
ON tab2.Col2 = tab1.Col2 AND tab2.Col1 = tab1.Col1
目前,对于 Table2 中不存在的 Table1 中的行,我返回 Col3 为 Null 的行。由于我基于 Col3 对数据进行分组,如果我能以某种方式获得 Col3 的值而不是 Null 会很好.....
这可能吗?
所以我试图返回 col1 和 col2 的每个可能的组合,每个 col3 的值。问题是当 col3 不包含 col1,col2 的特定组合时,我得到 col3 的空值...
【问题讨论】:
-
你为什么使用
LEFT JOIN? -
您是否真的想显示 Col1 和 Col2 的每个组合的 Col3 的所有可能值,在 Table2 中找不到 (col1, col2, col3) 的地方产生零?如果你这样做,你应该解释实际的表格。
标签: sql sql-server left-join