Bir tabloyu, başvurulan iki tabloya ayırmaya çalışıyorum ve yeni tablolardan birinin popülasyonuyla ilgili sorunlar yaşıyorum. Eski tablonun A, B, C, X, Y, Z
sütunlarını ve A, B, C, ID
'u içeren ilk yeni tablonun ve ikincinin ID, X, Y, Z
olmasını söyleyin. İkinci tablo doldurmamakSOL OKUMA sağ tablodaki değerleri eksik
önemsiz: Ben bu çalıştırıldıktan sonra newTable2
kontrol edip düzgün doldurulur görebilirsiniz
INSERT INTO newTable2 (`X`,`Y`,`Z`)
SELECT DISTINCT `X`,`Y`,`Z`
FROM oldTable;
. ID
, tablo tanımı ile doldurulur ve boş değer yoktur. İlk tabloyu doldururken sorunlarım var gibi görünüyor. Bu komut dosyasını kullanmak girişiminde:
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`;
Ama çıkan tabloyu kontrol ederken çoğu satırlar için ID
için boş değerler olsun. newTable2
'un neden olduğu için oldTable
'un her satırı için bir satır ve ID
olması ve el ile işaretlemiş olduğum her satırın, bulunamayan bir değeri vardır.
MySql 5.7 çalıştırıyorum ve ID
dışındaki tüm sütunlar varchar
türünde.
X, Y ve Z null musunuz? En az biri mi? – Pred
@Pred Hepsi null, hepsi alakalı mı? – Fr33dan
NULL, katılma koşullarında NULL ile eşit değildir. Boş değerlere geçin ve değerlerinizi bulabilirsiniz – Pred