サブクエリで結合を持つ次のクエリがあり、結合テーブルはメインクエリfrom節から参照されます。これはSQL Server 2000の構文ですが、2008年の構文に移行しようとしていますが、実行時にエラーが発生します。提案してください。私は以上の1つの値の誤差がSQL 2008のメインクエリのサブクエリ参照テーブル内の結合を実装する方法
示唆してくださいreturendサブクエリを取得しないように、私たちは、メインクエリフォーム句で参照テーブルにアクセスすることができますどのようにサブクエリ内での上記2008のクエリで
CREATE TABLE [dbo].[PRODUCT]
(
[pid] [int] NULL,
[NAME] [nchar](10) NULL,
[PDID] [int] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[PRODUCTDESC]
(
[PDID] [int] NULL,
[DESC] [nchar](10) NULL
) ON [PRIMARY]
--Test Data
insert into PRODUCT values (1,'ONE',1);
insert into PRODUCT values (2,'2',2);
insert into PRODUCT values (3,'3',2);
insert into PRODUCT values (4,'4',null);
insert into PRODUCT values (5,'4',5);
INSERT INTO PRODUCTDESC VALUES (1,'ONENEN');
INSERT INTO PRODUCTDESC VALUES (2,'TWEONEN');
-- SQL Server 2000
SELECT
Name,
(SELECT [DESC]
FROM PRODUCTDESC
WHERE PRODUCT.PDID *= PRODUCTDESC.PDID)
FROM
PRODUCT
--RESULTS
/*
Name (No column name)
ONE ONENEN
2 TWEONEN
3 TWEONEN
4 NULL
*/
-- SQL Server 2008
SELECT
NAME,
(SELECT [DESC]
FROM PRODUCT
LEFT OUTER JOIN PRODUCTDESC ON PRODUCT.PDID = PRODUCTDESC.PDID)
FROM
PRODUCT
--RESULTS
/*
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
*/
。
sqlnewbie:他の人の投稿の内容を単純に削除することは自由ではありません。この性質の編集を提案してください。もう一度あなたの質問をロールバックしていますので、ここに誰もが答えた内容が含まれています。 –
@wesley - 私はそれをもう一度ロールバックしました – JNK
sqlnewbie、編集内容は明確化、スペル、文法、句読点、書式などです - あなたが心に留めていることは分かりませんが、彼らはあなたに提供する時間がかかったと答えます。 –