###前提・実現したいこと
MYSQLを使って名寄せ(重複項目の統合)を行いたいです。
ですが、データベースの初心者であるため、どう行えば良いかわかりません。
条件としては、主キー(id)
nayose_otameshi テーブルに4つのカラム
first_name_kana,
last_name_kana,
phone_number,
city
の項目の名寄せを行いたいです。
現状としては、下記の用に記載したのですが、うまくプログラムが動きません。
お力をお貸しいただけないでしょうか?
SELECT * FROM nayose_otameshi r1 WHERE EXISTS(SELECT * FROM nayose_otameshi r2 WHERE r1.first_name_kana = r2.first_name_kana AND r1.last_name_kana = r2.last_name_kana AND r1.phone_number = r2.phone_number AND r1.city = r2.city ) ;
エラーメッセージ
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'r1 WHERE EXISTS(SELECT * FROM nayose_otameshi r2 ' at line 1
「うまくプログラムが動きません」とはどういう状態でしょうか。結果が1行も得られないのか、何かしらのエラーメッセージが表示されるのか。もう少し詳しく教えて下さい。というかそもそも同じテーブルで突き合わせすると必ず同じレコードが存在するので、全く名寄せにならない気がしますが。
すいません。上記は抽出になってしまっていますが、やりたいこととしては、テーブルの中の名寄せを行いたいです。
名寄せって、一般的には、表記のゆらぎもある程度吸収する作りになっていると思いますが、その辺のポリシーはどのように考えているのでしょうか?
重複項目の統合をメインに考えています。NULL項目は基本的にないです。
4項目の完全一致のみを確認すれば良いって感じですかね?半角全角の混在や余計なスペース、ハイフンやズとヅのような同音異表記と言ったモノは考慮外であるってことで。
とりあえず、現状そういう認識であっております。
回答2件
あなたの回答
tips
プレビュー