1

私はプログラミングが初めてで、あなたの助けに本当に感謝しています. :) それで、私はUSERテーブルとテーブルを持っていSALESます。テーブルにはSALES、ユーザーの名前と姓しかありません。私が持っているUSERテーブルの上namelast name、、、など...USER_IDemail

とが一致する場合USER_ID、テーブルからUSERテーブルにをコピーする必要があります。SALESNAMELAST NAME

構造は次のとおりです。

USER_TABLE_A
USER_ID_A
NAME_LASTNAME_A

SALES_TABLE_B
ROW_ID_B
NAME_B
LASTNAME_B
USER_ID_B (empty)

これまでのところ、両方のテーブルが交差するときにデータを表示するようになりましたが、ここからどこへ行くべきかわかりません。誰でも助けてもらえますか?

    $sql1 = mysql_query("SELECT name_B, lastname_B, user_id_B, row_id_B FROM sales_table_B WHERE name_B IS NOT NULL AND lastname_B IS NOT NULL", $db);
    $sql2 = mysql_query("SELECT name_lastname_A, user_id_A FROM user_table_A WHERE name_lastname_A IS NOT NULL", $db);
    $a1 = array();
while ($row = mysql_fetch_array($sql1)) {
    $id = $row['row_id_B'];
    $name1.$id = $row['name_B']." ".$row['lastname_B'];
    array_push($a1, $name1.$id);
}
    $a2 = array();
while ($row2 = mysql_fetch_array($sql2)) {
    $id2 = $row2['user_id_A'];
    $name2.$id2 = $row2['name_lastname_A'];
    array_push($a2, $name2.$id2);
} 
    $result = array_intersect($a1,$a2);
    print_r($result);

前もって感謝します!

4

2 に答える 2

0

ダルシャンありがとうございます!!あなたの答えには制限1の後に ) がありませんでしたが、調整すると美しく機能しました! 動作したコードは次のとおりです。

UPDATE sales_table_b
SET user_id_b = (SELECT user_table_a.user_id_a
                 FROM user_table_a
                 WHERE user_table_a.name_lastname_a = CONCAT(sales_table_b.name_b, ' ' , sales_table_b.lastname_b) LIMIT 1)
WHERE EXISTS (SELECT *
          FROM user_table_a
          WHERE user_table_a.name_lastname_a = CONCAT(sales_table_b.name_b, ' ' , sales_table_b.lastname_b))
于 2016-03-04T14:59:59.020 に答える
0

NAME_LASTNAME_Aの列がとの列のUSER_TABLE_A連結であるという仮定の下で、次のクエリは ID を更新する必要があります。NAME_BLASTNAME_BSALES_TABLE_BUPDATE

update sales_table_b
set b.user_id_b = (
 select user_id_a from user_table_a
 where name_lastname_a = concat(b.name_b, ' ' , b.lastname_b)
 limit 1
 where exists(
  select user_id_a from user_table_a
  where name_lastname_a = concat(b.name_b, ' ' , b.lastname_b)
 )
)

複数のユーザーが同じ姓名を持つ場合、最初に一致したユーザーの ID が考慮されることに注意してください。

于 2016-03-03T22:17:59.067 に答える