0
好奇的是,看看是否有方法來編寫下面的T-SQL語句(這一個錯誤無法在嵌套選擇中綁定TableA)。移除錯誤行似乎考慮來自TableB的所有記錄,然後執行連接。如何限制在連接內的嵌套選擇中考慮的記錄?
select *
from TableA A
join (
select TableAid, TableBinfo
from TableB
where TableB.TableAid = A.TableAid -- error line
group by TableAid, TableBinfo
) B on
A.TableAid = B.TableAid
where A.TableAid = 123
下面的SQL是我能期待的最好的嗎?
我真的想限制獨特的比較,只是在一個表中的一列,而不是我選擇的所有列。我不控制數據庫,它除了主鍵之外沒有任何索引。
select A.TableAid, B.TableBinfo
from TableA A
join TableB B on
A.TableAid = B.TableAid
where A.TableAid = 123
group by A.TableAid, B.TableBinfo
其實和第二選擇是一樣的。那麼用DISTINCT來代替呢? – bksi
Distinct vs Group By應該是相同的,但我已經看到我們的查詢需要更長的時間與Distinct可能是因爲他們的建設。 –