SQL возвращает null при left join?

Здравствуйте! Есть 2 таблицы пользователи и приглашения, в таблице приглашений хранится кто пригласил определенного юзера, если пришел сам то NULL. Причем пытаюсь посмотреть за определенный период времени.
Но проблема именно с опеределенным промежутком времени т.к. всегда возвращается null при выводе данных.
То есть у меня выводятся пользователи за весь промежуток времени, уж не знаю что придумать.

Структура:
--
-- Структура таблицы `inviteds`
--

CREATE TABLE `inviteds` (
  `id` int(10) UNSIGNED NOT NULL,
  `user_id` int(11) NOT NULL,
  `referer` int(11) DEFAULT NULL,
  `first` int(11) NOT NULL DEFAULT '0',
  `second` int(11) NOT NULL DEFAULT '0',
  `third` int(11) NOT NULL DEFAULT '0',
  `first_earn` double NOT NULL DEFAULT '0',
  `first_gth_earn` double NOT NULL DEFAULT '0',
  `second_earn` double NOT NULL DEFAULT '0',
  `second_gth_earn` double NOT NULL DEFAULT '0',
  `third_earn` double NOT NULL DEFAULT '0',
  `third_gth_earn` double NOT NULL DEFAULT '0',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- --------------------------------------------------------

--
-- Структура таблицы `users`
--

CREATE TABLE `users` (
  `id` int(10) UNSIGNED NOT NULL,
  `name` varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL,
  `token` varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL,
  `balance` double NOT NULL DEFAULT '0',
  `tokens` decimal(8,2) NOT NULL DEFAULT '0.00',
  `role` int(11) NOT NULL DEFAULT '0',
  `password` varchar(190) COLLATE utf8mb4_unicode_ci NOT NULL,
  `cheater` int(11) NOT NULL DEFAULT '0',
  `banned` int(11) DEFAULT NULL,
  `active` int(11) NOT NULL DEFAULT '0',
  `ip` varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `code` varchar(190) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


Сам запрос:
SELECT * 
FROM   `inviteds` 
       LEFT JOIN `users` AS `refererJoin` 
              ON `referer` = `refererJoin`.`id` 
                 AND `refererJoin`.`active` = 1 
                 AND `refererJoin`.`banned` = 0 
       LEFT JOIN `users` AS `userJoin` 
              ON `user_id` = `userJoin`.`id` 
                 AND `userJoin`.`active` = 1 
                 AND `userJoin`.`banned` = 0 
                 AND `userJoin`.`created_at` > '2020-02-01 00:00:00' 
                 AND `userJoin`.`created_at` < '2020-03-01 00:00:00' 
WHERE  `referer` IS NOT NULL
  • Вопрос задан
  • 1087 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
WHERE `refererJoin`.`id` IS NOT NULL
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы