Saya cuba mendapatkan semula nilai berkaitan berdasarkan berbilang entri dalam pangkalan data. Saya sangat baru dengan JOIN
MySQL dari segi penggunaan s dll dan saya cuba mengelak daripada melibatkan PHP tanpa perlu.
Apabila saya menyebut "dapatkan semula nilai berkaitan bersarang", lihat contoh ini:
"Person" table "Language" table "Greeting" table | personId | language | | languageId | greeting | | greetingId | value | |----------|----------| |------------|----------| |------------|-----------| | 1 | en | | en | 3 | | 1 | konichiwa | | 2 | jp | | jp | 1 | | 2 | bonjour | | 3 | fr | | fr | 2 | | 3 | hello |
Jika saya ingin mendapatkan semula salam orang pertama, prosesnya ialah:
1 -> en -> 3 -- ID Flow en -> 3 -> hello -- Value flow Person 1: "hello" -- Final result
Sebagai alternatif, jika saya ingin mendapatkan kembali salam orang ketiga, ia akan berbunyi:
3 -> fr -> 2 -- ID flow fr -> 2 -> bonjour -- Value flow Person 3: "bonjour" -- Final result
Jadi, bagaimana saya boleh melakukannya dalam MySQL? Saya memohon maaf jika ini sudah mempunyai jawapan; Saya tidak dapat mencari perkataan untuk menyelidik jawapan yang betul.
Cadangan - Jadikan nama lajur relatif sama. iaitu. Bukan
language
和languageId
,但在两个表中使用相同的名称(例如使用languageId
). Begitu juga dengan lajur Ucapan dan salamId. Ini akan menjadikan pertanyaan lebih mudah:JOIN menyertai rekod daripada dua jadual berdasarkan syarat tertentu. Sebagai contoh, anda ingin menyertai rekod dalam jadual "Orang" dengan rekod dalam jadual "Bahasa" supaya nilai dalam lajur
language
中的值等于列languageId
boleh dilakukan dengan memberikan klausa FROM berikut:Hasil JOIN ini adalah jadual yang kelihatan seperti ini