Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengembalikan Pelbagai Medan daripada Jadual PostgreSQL Berbeza sebagai Rekod Tunggal Menggunakan PL/pgSQL?
Mengembalikan Pelbagai Medan sebagai Rekod dalam PostgreSQL dengan PL/pgSQL
Apabila bekerja dengan PL/pgSQL, anda mungkin menghadapi keperluan untuk kembali rekod yang menggabungkan medan daripada berbilang jadual. Ini boleh dicapai dengan memanfaatkan jenis data REKOD Postgres.
Menggunakan RECORD untuk Retrieval Medan Berbilang Jadual
Untuk mengembalikan medan daripada jadual berbeza sebagai medan dalam satu rekod, tentukan medan yang dikehendaki dalam jenis REKOD sebagai berikut:
CREATE OR REPLACE FUNCTION get_object_fields(name text) RETURNS RECORD AS $$ BEGIN -- Retrieve required fields from various tables based on input name -- Return fields as a RECORD RETURN RECORD(f1, f2, f3, f4, f5, f6, f7, f8); END $$ LANGUAGE PL/pgSQL;
Mengendalikan Berbilang Baris Keputusan
Untuk senario kompleks di mana baris dengan berbilang nilai medan perlu "diratakan" menjadi satu rekod, lebih banyak terlibat pendekatan adalah perlu. Pertimbangkan kod berikut:
CREATE OR REPLACE FUNCTION get_two_users_from_school(schoolid int) RETURNS my_type AS $$ DECLARE result my_type; temp_result user; BEGIN -- Fetch two rows for illustration SELECT id, name INTO temp_result FROM user WHERE school_id = schoolid LIMIT 2; -- Assign values to the RECORD fields using pseudocode (adjust indices for actual row counts) result.user1_id := temp_result[0].id; result.user1_name := temp_result[0].name; result.user2_id := temp_result[1].id; result.user2_name := temp_result[1].name; RETURN result; END $$ LANGUAGE PL/pgSQL;
Faedah Jenis Rekod
Jenis REKOD memberikan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Pelbagai Medan daripada Jadual PostgreSQL Berbeza sebagai Rekod Tunggal Menggunakan PL/pgSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!