Saya kini mempunyai tiga jadual:
jadual pengguna//Data dimasukkan semasa pendaftaran
usersId //KUNCI UTAMA userfName nama pengguna userUid emel penggunaPwd dateTime
id //KUNCI UTAMA ikB nama mL mEmel mPhone fname nama fL fEmel fTelefon alamatL1 alamatL2 bandar negeriAbbr zip dicipta_di user_id //KUNCI ASING
Saya menggunakan lajur e-mel daripada jadual pengguna dan mEmail atau fEmail untuk memasukkan usersId ke dalam jadual ibu bapa.
child_id //KUNCI UTAMA anak1Nama dobAnak1 umurKanak1 anak2Nama dobAnak2 umurKanak2 anak3Nama dobChild3 umurKanak3 anak4Nama dobAnak4 umurKanak4 anak5Nama dobAnak5 umurKanak5 anak6Nama dobAnak6 umurKanak6 anak7Nama dobChild7 umurKanak7 anak8Nama dobAnak8 umurKanak8 anak9Nama dobAnak9 umurKanak9 anak10Nama dobChild10 umurKanak10 parent_id //KUNCI ASINGTiada nilai sepunya antara meja kanak-kanak dan dua jadual lain. Jangkaan saya adalah untuk melakukan pengesahan antara jadual pengguna dan jadual induk, dan jika usersId jadual pengguna dan user_id jadual induk adalah sama, masukkan nilai tersebut ke dalam parent_id jadual kanak-kanak. Adakah ini mungkin? Saya mempertimbangkan untuk menggunakan gabungan silang, tetapi saya bimbang prestasi akan terjejas apabila bilangan entri dalam pangkalan data bertambah.
SELECT usersId DARIPADA pengguna; PILIH user_id DARIPADA induk; KEMASKINI kanak-kanak (Id_ibu bapa) SERTAI ibu bapa DALAM children.parent_id = users.usersId KEMASKINI kanak-kanak PILIH usersId DARIPADA pengguna silang SERTAI anak.id_ibubapa PADA pengguna.Idpengguna = anak.id_ibubapa KEMASKINI kanak-kanak INNER JOIN pengguna (INNER JOIN parent ON users.userId = parent.userId) ON users.usersId = parent.user_id SET children.parent_id = parent.user_Id;Saya telah mencuba setiap kaedah tetapi tidak berjaya. Saya juga cuba menukar susunan sambungan tetapi itu tidak berfungsi sama ada. Terima kasih banyak atas sebarang bantuan yang anda boleh berikan.
Berdasarkan penerangan anda, anda ingin mengemas kini lajur parent_id dalam jadual anak berdasarkan nilai padanan antara jadual pengguna dan jadual induk. Anda ingin mengemas kini parent_id dalam jadual anak dengan usersId daripada jadual pengguna dan user_id daripada jadual induk.
Anda boleh melakukan ini menggunakan pertanyaan SQL berikut:
Penjelasan:
Pastikan anda membuat sandaran pangkalan data anda sebelum menjalankan sebarang pertanyaan kemas kini, hanya untuk selamat. ,
Mengenai kebimbangan anda tentang prestasi apabila entri pangkalan data berkembang, pertanyaan ini harus cekap selagi terdapat indeks yang sesuai pada lajur yang berkaitan, seperti e-mel dalam jadual pengguna dan mEmail dan fEmail dalam jadual induk. Indeks akan mempercepatkan proses carian dengan ketara, terutamanya apabila bekerja dengan set data yang besar.