Как получить MySQL столбец таблицы с вычисленным значением - PullRequest
0 голосов
/ 11 апреля 2020

Мой вопрос проще всего объяснить на примере ...

У меня есть следующие две таблицы - плоскости и места:

planes
 plane_ID     LONGINT - Index
 model        CHAR(20)
 seat_count   INT - Calculated (Count of rows in seats where plane_ID matches)
 filled_seats INT - Calculated (Count of rows in seats where plane_ID matches and reserved = True)

seats
 plane_ID  LONGINT
 reserved  bool

То, что я хотел бы случиться, это когда Я запрашиваю таблицу плоскостей, я хотел бы получить рассчитанные значения для столбца «места» и столбца «заполненные места».

Я просто хочу сказать: «ВЫБЕРИТЕ место_счета ОТ самолетов» ГДЕ модель = «Боинг 787» чтобы выяснить, сколько записей в таблице посадочных мест для Boeing 787. Я ожидаю, что вернется одна строка с одним столбцом, содержащим количество посадочных мест для Boeing 787.

Это можно сделать с более сложным оператором select, но вместо этого я хочу использовать вычисляемые столбцы.

Я знаю, что это можно сделать, но я не знаю как и не знаю, как это называется, поэтому я не могу найти какую-либо информацию в Интернете.

Я использую MySQL v 8.0.19 для Linux

1 Ответ

1 голос
/ 11 апреля 2020

То, что вы ищете, это Generated columns, но вы не можете делать с ними то, что хотите, поскольку выражения могут содержать только «литералы, детерминированные c встроенные функции и операторы ", а именно:" Подзапросы запрещены. " *:

SELECT seat_count 
FROM plane_seats
WHERE model = 'Boeing 787'
...