Здравствуйте. Есть две таблицы. Первая таблица выводит временные интервалы, которые в ней присутствуют и на основании таблицы 2 они отмечаются как занятые. Всё работает но при наполнении таблицы 2 строки которые выводятся из таблицы 1 начинают дублироваться, сколько записей добавлено в таблицу 2 - столько раз и дублируются. 10:00 10:00 10:00 - итд если в таблице 2 было 3 строки добавлено, если больше, то так же и увеличит вывод из первой таблицы. Помогите пожалуйста решить эту проблему ? SQL запрос: Code: SELECT `timeslot`, `timeslot_req`, `specialist`, `specialist_req`, `categories`, `status`, `categories_req` FROM `'.$prefix.$table_1.'`, `'.$prefix.$table_2.'` WHERE DATE(timeslot) = "'.$datetime->format("Y-m-d").'" AND specialist="'.$specialist.'" AND categories = "'.$categories.'" ORDER BY timeslot ASC
Похоже, после BY нужно явно прописать ещё и имя таблицы, в которую записывается значение. А то при обработке скрипт обращается к обоим таблицам и пишет, соответственно, в обе сразу.
Предположим, что таблица 1 называется table_1, а таблица 2 - table_2. Тогда ваш запрос можно переписать следующим образом Code: SELECT DISTINCT t1.timeslot, t1.specialist, t1.categories, IFNULL(t2.status, 'free') as status FROM table_1 t1 LEFT JOIN table_2 t2 ON t1.timeslot = t2.timeslot AND t1.specialist = t2.specialist AND t1.categories = t2.categories WHERE DATE(t1.timeslot) = "'.$datetime->format("Y-m-d").'" AND t1.specialist="'.$specialist.'" AND t1.categories = "'.$categories.'" ORDER BY t1.timeslot ASC