0

わかりました、これは信じられないほど単純かもしれませんが、私の脳は今凍っています. このクエリについて少し支援が必要です。分解してみましょう。(この例では) 2 つのテーブルがあり、1 つのテーブルの「配信不能」ステータスを更新したい

顧客テーブル(tbl_customers):

+------------+-------------+
| customerID | custAcctNum | 
+------------+-------------+
|     1      |  100100121  | 
|     2      |  100100122  | 
|     3      |  100100123  | 
|     4      |  100100124  | 
|     5      |  100100125  | 
+------------+-------------+

アドレス テーブル(tbl_address):

+-----------+------------+---------------+
| addressID | customerID | undeliverable | 
+-----------+------------+---------------+
|     1     |     1      |       0       | 
|     2     |     2      |       0       | 
|     3     |     3      |       0       |
|     4     |     4      |       0       | 
|     5     |     5      |       0       | 
+-----------+------------+---------------+

「配信不可」の顧客アカウント番号を含むデータセット (custAcctNum)

100100121, 100100123, 100100124

そしてクエリはアドレステーブルをこれに更新します

+-----------+------------+---------------+
| addressID | customerID | undeliverable | 
+-----------+------------+---------------+
|     1     |     1      |       1       | 
|     2     |     2      |       0       | 
|     3     |     3      |       1       |
|     4     |     4      |       1       | 
|     5     |     5      |       0       | 
+-----------+------------+---------------+

これは私が使用しようとしたクエリです

UPDATE tbl_address
SET undeliverable = 1 WHERE 
( SELECT custAcctNum FROM tbl_customers AS c
INNER JOIN tbl_address AS a ON a.customerID = c.customerID )
IN ( 100100121, 100100123, 100100124);

助言がありますか?ありがとう!

4

2 に答える 2

2
UPDATE tbl_address
SET (undeliverable = 1)
WHERE customerID IN (
   SELECT customerID
   FROM tbl_customers
   WHERE custAcctNum IN (100100121, 100100123, 100100124)
);
于 2013-07-19T16:30:23.730 に答える