ДоХтор, хорошо, когда знаешь, что именно ищешь. Я не мог найти, мне всё какие-то настройки временных зон для скриптов в поиске попадались
Отлично всё работает, уже даже в функционал CMS добавил. Теперь из настроек пользователя, в личном профиле, он автоматом будет получать корректную телепрограмму, без танцев с бубном и колдовством над устройствами просмотра.
# Sitego (02.10.2017 / 20:51)
ДоХтор, хорошо, когда знаешь, что именно ищешь.
Ооо дааа, гг ... Мне по работе недавно пришлось править js-код, и вроде бы всё логично в коде, но пару часов поисков по гуглу ничем мне так и не помогли. Пока Макс (Симба) не написал мне пример, дальше я не мог идти, гг... Так что ты верно заметил - надо знать, что гуглить.
Есть 1 таблица `users` и 4 таблицы `tab1`, `tab2`, `tab3`, `tab4`
В каждой из таблиц хранятся записи, которые добавляют какие-то пользователи (`time_add` - время добавления, `user_add` - ID юзера, который добавил запись)
Нужно получить список ID юзеров, которые создавали записи хотя бы в одной из таблиц в определённый промежуток времени от $time_start до $time_end
Hat-Trik, Первое что на ум пришло
select user_add from tab1 where time_add BETWEEN $time_start and $time_end
union all /* без ALL выведет только уники */
select user_add from tab2 where time_add BETWEEN $time_start and $time_end
Hat-Trik, не уверен, что отработает, проверить не на чём:
$query = "
SELECT `user_add`
FROM `users`, `tab1`, `tab2`, `tab3`, `tab4`
WHERE `time_add` >= $time_start AND `time_add` <= $time_end
";
Добавлено: 14.10.2017 / 17:15
ДоХтор, А `users` то на кой здесь нужен?
П.С. `time_add` >= $time_start AND `time_add` <= $time_end - выше в примере правильнее))
Добавлено: 14.10.2017 / 17:24
П.П.С. И с таким запросом вылезет что то типа
column 'user_add' in field list is ambiguous
# kantry (14.10.2017 / 17:24)
ДоХтор, А `users` то на кой здесь нужен?
Ну так из поста следует: Есть 1 таблица
`users` и 4 таблицы `tab1`, `tab2`, `tab3`, `tab4`
П.П.С. И с таким запросом вылезет что то типа column 'user_add' in field list is ambiguous
Тогда, вероятно, надо явно задать названия таблиц, из которых надо выбирать поля. Как-то так
(теоретически)
$query = "
SELECT
`users`.`user_add`,
`tab1`.`user_add`,
`tab2`.`user_add`,
`tab3`.`user_add`,
`tab4`.`user_add`
FROM `users`, `tab1`, `tab2`, `tab3`, `tab4`
WHERE `time_add` >= $time_start AND `time_add` <= $time_end
";
UPD: Убрал лишнюю запятую из запроса.
# ДоХтор (14.10.2017 / 17:41)
Ну так из поста следует: Есть 1 таблица `users` и 4 таблицы `tab1`, `tab2`, `tab3`, `tab4`
Мало ли что он там написал
Нужен то ай-ди писателей, а какой может быть ай-ди если его нет в users?
ДоХтор, Пост изменил когда я уже отвалил)) Ты чего такой невнимательный то? WHERE
`time_add` при объединении таблиц с одинаковыми колонками, надо альясы использовать, иначе ошибка вылезет - неоднозначные колонки!
Твой запрос(реконструкция):-D
SELECT `id` FROM `users` WHERE id IN(
select user_add from `tab1` WHERE time_add BETWEEN $time_start AND $time_end)
OR id IN(
select user_add from `tab2` WHERE time_add BETWEEN $time_start AND $time_end)
Добавлено: 15.10.2017 / 11:39
Вот по типу последнего варианта у меня самого получился после нескольких попыток
Добавлено: 18.10.2017 / 23:56
У нас есть `table` и записи в ней, где в поле `type` указывается, либо 1, либо 0.
Как в одном запросе сосчитать количество записей с type 0, кол-во записей с type 1 и из одного вычесть второе?