テーブルを2つの参照テーブルに分割しようとしましたが、新しいテーブルの1つの母集団に問題があります。古いテーブルの列がA, B, C, X, Y, Z
で、最初の新しいテーブルがA, B, C, ID
で、2番目のテーブルがID, X, Y, Z
であるとします。第二のテーブルを移植LEFT JOIN右テーブルの欠損値
は簡単です:私はこれが実行された後newTable2
をチェックし、それが適切に移入され見ることができます
INSERT INTO newTable2 (`X`,`Y`,`Z`)
SELECT DISTINCT `X`,`Y`,`Z`
FROM oldTable;
。 ID
には表定義が取り込まれ、ヌル値はありません。私は最初のテーブルを作成することに問題があるようです。私はこのスクリプトを使用しようとした:
INSERT INTO newTable1
SELECT oldTable.`A`
, oldTable.`B`
, oldTable.`C`
, newTable2.`ID`
FROM oldTable
LEFT JOIN newTable2
ON newTable2.`X` = oldTable.`X`
AND newTable2.`Y` = oldTable.`Y`
AND newTable2.`Z` = oldTable.`Z`;
をしかし、私は結果のテーブルをチェックするとき、私はほとんどの行のID
ためのnull値を取得します。どのように入力されているのかによって、newTable2
には行があり、oldTable
の各行にはID
があり、手動でチェックしたヌルの行には単純に見つからなかった値があります。
私はMySql 5.7を実行しており、ID
以外のすべての列はvarchar
です。
は、X、YおよびZのNULL可能か?それらのうちの少なくとも1つ? – Pred
@Predこれらはすべてnull可能ですが、それは関係がありますか? – Fr33dan
NULLは結合条件でNULLと等しくありません。 nullを処理すると値が見つかります – Pred