Une solution possible serait de créer d'abord une requête pour chaque type de réservation (que vous pourriez déjà avoir) et d'y ajouter le cust_type, puis d'unir les deux ensemble. Ainsi, les requêtes initiales ressembleraient à :
guest_reservations :
SELECT reservation.r_id, guest.name, "guest" AS cust_type, {other fields}
FROM guest, reservation INNER JOIN guest ON guest.g_id = reservation.g_id;
company_reservations :
SELECT reservation.r_id, company.name, "company" AS cust_type {other fields}
FROM company, reservation INNER JOIN company ON company.c_id = reservation.c_id;
Ensuite, vous pouvez fusionner les deux requêtes, quelque chose comme ci-dessous.
SELECT reservation.r_id, guest.name, "guest" AS cust_type, {other fields}
FROM guest, reservation INNER JOIN guest ON guest.g_id = reservation.g_id
UNION SELECT reservation.r_id, company.name, "company" AS cust_type {other fields}
FROM company, reservation INNER JOIN company ON company.c_id = reservation.c_id;
Bien sûr, n'oubliez pas de supprimer {autres champs} ou d'y ajouter tout ce dont vous avez besoin.