Проверить несколько таблиц в одном запросе

Просто альтернатива коду rkosegi,

BEGIN

    .. Declare statements ..

    DECLARE EXIT HANDLER FOR SQLEXCEPTION 
    BEGIN
          .. set any flags etc  eg. SET @flag = 0; ..
          ROLLBACK;
    END;

    START TRANSACTION;

        .. Query 1 ..
        .. Query 2 ..
        .. Query 3 ..

    COMMIT;
    .. eg. SET @flag = 1; ..

END
0
задан pixie123 18 January 2019 в 04:35
поделиться

2 ответа

SELECT * FROM appointments 
      WHERE DATE(appointment_date) = CURDATE()
      AND appointment_time BETWEEN NOW() AND NOW() + INTERVAL 1 HOUR
      AND business_id in (SELECT business_id FROM businesses WHERE reminders_enabled=1)
      AND user_id in (SELECT user_id FROM users WHERE reminders_enabled=1)
0
ответ дан Blive 18 January 2019 в 04:35
поделиться

Нечто подобное должно работать. Фильтры JOIN выполняют фильтрацию, как описано в шагах 1-3:

SELECT *
FROM appointments a
JOIN businesses b ON b.business_id = a.business_id AND b.reminders_enabled = 1
JOIN users u ON u.user_id = a.user_id AND u.reminders_enabled = 1
WHERE DATE(a.appointment_date) = CURDATE() AND 
      a.appointment_time BETWEEN NOW() AND NOW() + INTERVAL 1 HOUR
0
ответ дан Nick 18 January 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: