Можно ли упростить такой запрос в MySQL?

268
18 января 2018, 21:34

Есть у меня вот такой запрос:

$query="SELECT *,
(SELECT  CONCAT(?, '/sadm/clients/', `users`.`UID`, '.html')) AS 'Edit',
(SELECT `Login`  FROM `t_sysuser` WHERE `t_sysuser`.`UID`=`managerId`) as `managerId`,
(SELECT `City`  FROM `t_sysuser` WHERE `t_sysuser`.`UID`=`managerId`) as `CityId` 
FROM `users` 
ORDER BY `UID` 
DESC 
LIMIT ?d, ?d;";

В нем фактически две одинаковые строки:

(SELECT `Login`  FROM `t_sysuser` WHERE `t_sysuser`.`UID`=`managerId`) as `managerId`,
(SELECT `City`  FROM `t_sysuser` WHERE `t_sysuser`.`UID`=`managerId`) as `CityId`

Можно это упростить как-то? Мне нужны не только колонки Login и City, но и ещё три из t_sysuser. Может есть какой-то хитрый синтаксис?

Или как-то получить массивом все поля колонки.

Answer 1

Типа так?

SELECT *,
       CONCAT(?, '/sadm/clients/', `users`.`UID`, '.html') AS 'Edit',
       `t_sysuser`.`Login` as `managerId`,
       `t_sysuser`.`City`  as `CityId` 
FROM `users`, `t_sysuser` 
WHERE `t_sysuser`.`UID`=`users`.`managerId`
ORDER BY `users`.`UID` DESC 
LIMIT ?d, ?d;
READ ALSO
Проблема с квадратными скобками ([]) в xpath

Проблема с квадратными скобками ([]) в xpath

Есть такой небольшой кусок кода с использованием domDocument и xpath

257
Управление доступом

Управление доступом

Как еще можно обойти защищенность полей в ооп? кроме дружественных функций

299
Перегрузка операторов - уточнение

Перегрузка операторов - уточнение

Почему вот это называется перегрузкой оператора? cout разве не выводит пользовательские типы БЕЗ перегрузки?

330
expected ',' or ';' before 'do' Ошибка при компиляции

expected ',' or ';' before 'do' Ошибка при компиляции

Начинаю компилировать и выходит ошибка кода, вот: (недоделал пока)

320