テーブル1
A | B(連番) |
---|---|
aa | 1 |
bb | 2 |
cc | 3 |
dd | 4 |
: | : |
テーブル2
C | D | E |
---|---|---|
22 | d1 | aa |
55 | d1 | dd |
33 | d1 | cc |
11 | d1 | bb |
66 | d1 | aa |
22 | d2 | 8 |
66 | d2 | 10 |
55 | d2 | 3 |
33 | d2 | 5 |
11 | d2 | 2 |
: | : | : |
テーブル2は、「d1にAの値」、「d2にBの値」がそれぞれ入っています。
AとEが一致するCに対するd2のEを、Bの値にそれぞれ更新したいです。
テーブル1の1行目(aa,1)だけを例にとった場合、
A(aa)とEが一致するCは「22と66」なので、このそれぞれd2のEが「1」に更新されます。
SQL文にすると以下の通りです。
SELECT C
FROM テーブル2
WHERE D = d1 and E = aa
⇒ 22と66が返されるので、
UPDATE テーブル2
SET E = 1
WHERE D = d2 and ( C = 22 or C = 66 )
更新後のテーブル2は以下の通りです。
C | D | E |
---|---|---|
22 | d1 | aa |
55 | d1 | dd |
33 | d1 | cc |
11 | d1 | bb |
66 | d1 | aa |
22 | d2 | 1 |
66 | d2 | 1 |
55 | d2 | 3 |
33 | d2 | 5 |
11 | d2 | 2 |
: | : | : |
この一連の更新をSQL若しくはPHPを用いて動的に行う場合、どのような方法が考えられますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/23 01:38 編集
退会済みユーザー
2017/09/23 01:47
退会済みユーザー
2017/09/23 01:50