Я не решаюсь опубликовать весь запрос, но, возможно, это необходимо для моих переменных.Короче говоря, десятый столбец является подзапросом и должен возвращать количество вхождений чего-либо в другой таблице.
SQLFiddle: http://sqlfiddle.com/#!9/3718e/2
Идентификатор пользователя 366
- это тестпроизводственный учет.Обычно это динамически связанная ?
подготовленная переменная.Идентификатор пользователя 366
должен возвращать две строки.Девять столбцов не важны для этого вопроса, но 10-й (подзапрос) должен иметь число 1
и 0
в первой и второй строках соответственно.Это работает на SSH-соединении с MySQL.Тем не менее, PHP mysqli и даже PhpMyAdmin возвращают 0
и 0
соответственно.Я поставил «песочницу» на PHP, поэтому ошибка лежит в SQL, я верю.
Пример правильного вывода из SSH (9 столбцов перед игнорированием):
+--------+
| guests |
+--------+
| 0 |
| 1 |
+--------+
mysqliвернет только нули. Другие столбцы не затрагиваются, и SSH / mysqli согласны и возвращаются правильно. Если требуется больше контекста, дайте мне знать.
Спасибо.
![Screenshot from server](https://i.stack.imgur.com/HJfg0.png)
SELECT tickets.id, @formal_id:=schedule.id as 'formal_id',
schedule.name, schedule.date, schedule.colour,
@li_price:=schedule.livers_in_price as 'li',
@lo_price:=schedule.livers_out_price as 'lo',
@gu_price:=schedule.guests_price as 'gu', tickets.for_sale as
'for_sale', @guest:=(
SELECT COUNT(*)
FROM billing
WHERE guest = 1
AND user_id = @user_id
AND formal_id = @formal_id ) AS 'guests' FROM tickets JOIN user ON tickets.user_id = user.user_id JOIN schedule ON tickets.formal_id =
schedule.id JOIN billing ON tickets.formal_id = billing.formal_id
WHERE user.user_id = 366 AND schedule.date > NOW() GROUP BY
tickets.id;