我試圖拔出從一個SQL Server數據庫的一些信息(使用SQL Server Management Studio中)這樣的語句:SQL服務器加入
SELECT DISTINCT(t1.accountid),
t1.accountname,
t1.reseller,
(SELECT t1.reseller
FROM dbname t1
INNER JOIN dbname t2
ON t1.reseller = t2.reseller
WHERE t1.reseller IN (1)) AS Reseller
FROM dbname t1,
dbname t2
運行這給了我的錯誤:
子查詢返回的值超過1。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。
經過大量的研究,我仍然難倒了。和幫助將不勝感激。謝謝。
[不良習慣踢:使用舊樣式的JOIN(http://sqlblog.com/blogs/aaron_bertrand/archive/2009 /10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的表*樣式列表已停用ANSI - ** 92 ** SQL標準(** 20年**前!) – 2013-03-08 16:58:12
如果經銷商在兩個表中匹配,輸出兩次的意義何在?此外,爲什麼你明確加入子查詢,然後*再次*但***含蓄***([這是壞!](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08) /bad-habits-to-kick-using-old-style-joins.aspx))在外部查詢? – 2013-03-08 16:58:42
另外,自加入AT ALL的要點是什麼?你可以顯示幾行樣本數據和期望的結果嗎?我開始制定一個答案,但最初的嘗試存在很多錯誤,因此無法確定此查詢實際上應該做什麼。 – 2013-03-08 17:03:05