SELECT user_dolg.id , user_dolg.date, user_dolg.user_id, user_dolg.dolg_id, user_dolg.dogovorNomer, user_dolg.dogovor_name, user_dolg.object, user_dolg.vidraboty, user_dolg.hours, user_dolg.user_change,
predprijatie.all_name,
users.name, users.users_id ,users.mesto_rab , users.doljnost
FROM users
INNER JOIN user_dolg ON user_dolg.user_id = users.users_id
INNER JOIN predprijatie ON user_dolg.dolg_id = predprijatie.pred_id
(SELECT users_id FROM table WHERE users_id = 34) AS fr
ORDER BY (table.users_id = fr.users_id) DESC, 'date' ASC
WHERE `date` BETWEEN '$starttime' AND '$endtime'
#1222 - Использованные операторы выборки (SELECT) дают разное количество столбцов
SELECT * FROM users
WHERE `users_id` = 34
UNION
SELECT user_dolg.id , user_dolg.date, user_dolg.user_id, user_dolg.dolg_id, user_dolg.dogovorNomer, user_dolg.dogovor_name, user_dolg.object, user_dolg.vidraboty, user_dolg.hours, user_dolg.user_change,
predprijatie.all_name,
users.name, users.users_id ,users.mesto_rab , users.doljnost
FROM users
INNER JOIN user_dolg ON user_dolg.user_id = users.users_id
INNER JOIN predprijatie ON user_dolg.dolg_id = predprijatie.pred_id
WHERE `date` BETWEEN 2019-04-01 AND 2019-04-30 AND users_id <> 34
ORDER BY `date` ASC
SELECT user_dolg.id , user_dolg.date, user_dolg.user_id, user_dolg.dolg_id, user_dolg.dogovorNomer, user_dolg.dogovor_name, user_dolg.object, user_dolg.vidraboty, user_dolg.hours, user_dolg.user_change,
predprijatie.all_name,
users.name, users.users_id ,users.mesto_rab , users.doljnost
FROM users
INNER JOIN user_dolg ON user_dolg.user_id = users.users_id
INNER JOIN predprijatie ON user_dolg.dolg_id = predprijatie.pred_id
WHERE `date` BETWEEN '$starttime' AND '$endtime'
но сортирует все равно как изначально было, если сортировку убрать то выходит то что нужно , но сортировка важна)
как быть?