1

多くのメンバーが含まれるmembers_infoテーブルがありますが、メンバー B の情報をメンバー A の情報で更新する必要があります。

メンバーのユーザー ID は次のとおりです。

メンバー A = 98089 ( member_info_id)
メンバー B = 236505 ( member_info_id)

2人のメンバーに共通点がないので、私は参加できません。メンバー B の情報を更新するにはどうすればよいですか?

これがテーブルの構造ですが、役に立つとは思えません

mysql> describe member_info;
+-------------------------------+--------------+------+-----+-------------------+----------------+
| Field                         | Type         | Null | Key | Default           | Extra          |
+-------------------------------+--------------+------+-----+-------------------+----------------+
| member_info_id                | int(11)      | NO   | PRI | NULL              | auto_increment |
| member_id                     | int(11)      | NO   | UNI | 0                 |                |
| street                        | varchar(100) | NO   |     | NULL              |                |
| street2                       | varchar(50)  | NO   |     |                   |                |
| city                          | varchar(50)  | NO   |     |                   |                |
| state                         | varchar(50)  | NO   |     |                   |                |
| country_id                    | int(11)      | NO   |     | 0                 |                |
| postal                        | varchar(20)  | NO   |     |                   |                |
| phone                         | varchar(20)  | NO   |     |                   |                |
| street_ntv                    | varchar(100) | NO   |     |                   |                |
| street2_ntv                   | varchar(50)  | NO   |     |                   |                |
| city_ntv                      | varchar(50)  | NO   |     |                   |                |
| state_ntv                     | varchar(50)  | NO   |     |                   |                |
| card_ship_addr                | varchar(250) | NO   |     | NULL              |                |
| tax_id                        | varchar(20)  | NO   |     |                   |                |
| c_type                        | varchar(20)  | NO   |     |                   |                |
| c_number                      | varchar(20)  | NO   |     |                   |                |
| c_code                        | varchar(5)   | NO   |     |                   |                |
| c_date                        | varchar(10)  | NO   |     |                   |                |
| c_name                        | varchar(50)  | NO   |     |                   |                |
| street_b                      | varchar(100) | NO   |     | NULL              |                |
| street_b2                     | varchar(50)  | NO   |     |                   |                |
| city_b                        | varchar(50)  | NO   |     |                   |                |
| state_b                       | varchar(50)  | NO   |     |                   |                |
| country_b_id                  | int(11)      | NO   |     | 0                 |                |
| postal_b                      | varchar(20)  | NO   |     |                   |                |
| new_data                      | text         | NO   |     | NULL              |                |
| new_data_code                 | varchar(10)  | NO   |     |                   |                |
| new_data_date                 | int(11)      | NO   |     | 0                 |                |
| picture_id                    | int(1)       | NO   |     | 0                 |                |
| gender                        | tinyint(4)   | NO   |     | 0                 |                |
| date_birth                    | date         | YES  |     | NULL              |                |
| education                     | tinyint(4)   | NO   |     | 0                 |                |
| income_range                  | tinyint(4)   | NO   |     | 0                 |                |
| li_first_name                 | varchar(200) | NO   |     |                   |                |
| li_last_name                  | varchar(200) | NO   |     |                   |                |
| li_street                     | varchar(200) | NO   |     |                   |                |
| li_street2                    | varchar(200) | NO   |     |                   |                |
| li_city                       | varchar(200) | NO   |     |                   |                |
| li_state                      | varchar(200) | NO   |     |                   |                |
| li_country_id                 | varchar(200) | NO   |     |                   |                |
| li_postal                     | varchar(200) | NO   |     |                   |                |
| li_phone                      | varchar(200) | NO   |     |                   |                |
| li_governmentid               | varchar(200) | NO   |     |                   |                |
| li_gov_filename               | varchar(50)  | NO   |     |                   |                |
| li_gov_id_number              | varchar(30)  | NO   |     |                   |                |
| li_gov_driver_state           | varchar(10)  | NO   |     |                   |                |
| li_gov_country                | varchar(50)  | NO   |     |                   |                |
| li_gov_expdate                | varchar(50)  | NO   |     |                   |                |
| li_governmentdate             | int(11)      | NO   |     | 0                 |                |
| li_staff_id                   | int(11)      | NO   |     | 0                 |                |
| li_verify_date                | int(11)      | NO   |     | 0                 |                |
| private_key                   | varchar(100) | NO   |     |                   |                |
| private_key_enable            | int(11)      | NO   |     | 0                 |                |
| show_displayname              | tinyint(1)   | YES  |     | 0                 |                |
| legal_status                  | int(11)      | NO   | MUL | NULL              |                |
| legal_change_reason           | text         | NO   |     | NULL              |                |
| legal_update_time             | timestamp    | NO   | MUL | CURRENT_TIMESTAMP |                |
| legal_expire_date             | date         | NO   |     | 0000-00-00        |                |
| legal_wf_update_id            | int(11)      | YES  | MUL | NULL              |                |
| legal_gov_update_id           | int(11)      | YES  | MUL | NULL              |                |
| legal_info_update_id          | int(11)      | YES  | MUL | NULL              |                |
| legal_verifications_update_id | int(11)      | YES  | MUL | NULL              |                |
| ewallet_log_update_id         | int(11)      | YES  | MUL | NULL              |                |
| legal_lang                    | tinyint(4)   | YES  | MUL | NULL              |                |
+-------------------------------+--------------+------+-----+-------------------+----------------+
65 rows in set (0.00 sec)
4

2 に答える 2

4

それらは直接関連していませんが、次のことを実行できますJOIN

UPDATE 
    members_info mb JOIN
    members_info ma ON ma.member_info_id = 98089
SET
    mb.Name = ma.Name,
    mb.Info = ma.Info
    -- Etc... 
WHERE
    mb.member_info_id = 236505
于 2013-01-09T17:18:09.460 に答える
0

A の情報を使用して 1 つのメンバー (B) を更新するだけの場合は、次のようになります。

UPDATE members_info member_B, (SELECT DISTINCT ID, Column_1, Column_2, Column_X
                             FROM members_info
                             WHERE id = '98089') member_A

SET member_B.Column_1 = member_A.Column_1, member_B.Column_2 = member_A.Column_2
WHERE member_B.id = '236505'

**注: 未テスト。

于 2013-01-09T17:19:52.590 に答える