[英]SQL Server JOIN Statements
我正在嘗試從SQL Server數據庫(使用SQL Server Management Studio)中提取一些信息,如下所示:
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。 當子查詢遵循=,!=,<,<=,>,> =或將子查詢用作表達式時,不允許這樣做。
經過大量研究,我仍然感到困惑。 並且幫助將不勝感激。 謝謝。
DISTINCT
應用於單個列,並且我不確定在此是否需要它,除非您的表允許所有這些列中的重復值。 t1.reseller
...即使您使用了t1
一個,又使用了t2
一個,因為它們在t1.reseller
上是匹配的,所以每行它們總是相同的! DISTINCT
使用的原因? 似乎您需要的是:
SELECT accountid, accountname, reseller
FROM dbo.dbname
WHERE reseller = 1;
否則,請准確描述您的查詢應該執行的操作(通過顯示示例數據和所需結果)。
在子查詢中添加TOP 1子句
如下
(SELECT TOP 1 t1.reseller
FROM dbname t1
INNER JOIN dbname t2
ON t1.reseller = t2.reseller
WHERE t1.reseller IN ( 1 )) AS Reseller)
您收到的錯誤是因為此查詢:
(SELECT t1.reseller
FROM dbname t1
INNER JOIN dbname t2
ON t1.reseller = t2.reseller
WHERE t1.reseller IN ( 1 )) AS Reseller)
返回多個值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.