J'ai besoin de trouver des utilisateurs qui ont fabriqué ou reçu une réservation.
J'ai deux tables qui ressemblent à ceci: p>
Utilisateurs: P>
select u.id, b1.rid, b2.oid from users u left join bookings b1 on u.id = b1.rid left join bookings b2 on u.id = b2.oid;
4 Réponses :
Vous devriez être capable d'utiliser une clause code> Union code> ici. de
Cependant, vous ne définissez pas ce que la "fenêtre de l'heure" est, alors je ne suis pas sûr que nous puissions trouver une solution complète pour vous. Cependant, essayez quelque chose comme ce qui suit:
Vous voulez tous les identifiants utilisateur qui sont soit dans des réservations.Id ou des bookdings.oid. Donc, vous pourriez faire quelque chose comme:
Ma sortie doit être une liste des ID utilisateur correspondant aux utilisateurs qui ont effectué ou reçu une réservation. P>
Pour ce faire, il vous suffit de regarder les réservations
code> Table: p>xxx pré> le
distinct code> supprime le Duplicates retournées par chaque requête et leUnion tout code> supprime des doublons sur les deux requêtes. p>Si vous souhaitez filtrer par horaire: P>
SELECT DISTINCT rid id FROM bookings WHERE some_date BETWEEN :start_date AND :end_date UNION ALL SELECT DISTINCT oid FROM bookings WHERE some_date BETWEEN :start_date AND :end_date
Je suppose qu'il y a une colonne Nom code> dans utilisateurs code> Table. de
Si vous le souhaitez aussi, select distinct userid from (
select rid userid from bookings
union
select oid userid from bookings
) t
Et comment la fenêtre TIME est-elle définie?
@Amaitu vous n'avez pas besoin de rejoindre ou même d'utiliser la table des utilisateurs. Vous avez seulement besoin de réservations.