Jadual Bersyarat Bercantum dalam MySQL
Pertimbangkan senario di mana anda mempunyai jadual dengan lajur id1, id2 dan jenis, di mana jenis ialah nilai terhitung mewakili nama jadual lain. Anda berhasrat untuk melakukan gabungan dengan jadual sebenar berdasarkan jenis yang ditentukan.
Secara tradisinya, anda mungkin mempertimbangkan untuk menggunakan pernyataan suis untuk menyertai jadual yang berkaitan secara bersyarat:
switch($type) { case 'table1': JOIN table1; break; case 'table2': JOIN table2; break; }
Walau bagaimanapun, MySQL tidak secara langsung menyokong pendekatan ini. Sebaliknya, anda boleh mencapai gabungan bersyarat menggunakan gabungan klausa LEFT JOIN dan ON. Contohnya, untuk menyertai jadual table1 dan table2 berdasarkan nilai jenis, anda boleh menggunakan pertanyaan berikut:
SELECT t.id, t.type, t1.id AS id2, -- Assuming table1 alias is 't1' t2.id AS id3 -- Assuming table2 alias is 't2' FROM t LEFT JOIN t1 ON t1.id = t.id AND t.type = 'table1' LEFT JOIN t2 ON t2.id = t.id AND t.type = 'table2'
Dalam pertanyaan ini, t mewakili jadual asal dengan lajur id1, id2 dan taip. Klausa LEFT JOIN melakukan bukan equijoins berdasarkan keadaan jenis. Dengan menyatakan alias t1 dan t2, anda boleh mendapatkan semula lajur daripada jadual yang dicantumkan.
Pendekatan ini membolehkan anda untuk menyertai jadual secara bersyarat berdasarkan nilai yang disimpan dalam lajur jenis, meniru gelagat penyataan suis dengan berkesan untuk gabungan jadual dalam MySQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Gabungan Jadual Bersyarat dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!