Как использовать оператор выбора для сгенерированного столбца в mysql? - PullRequest
0 голосов
/ 23 марта 2020

У меня есть 2 таблицы.

table_1:
Id.    Name        Surname.   company_id
1      tony.       tata.      fiat
2      Michael.    folks.     fiat
3      Salvo       ture.      alfa 

table_2:
company_id.   street.          cap.        numbers_of_guys
fiat          via le maini.    20123.      2
alfa          stazione x.      20123.      1
foo           novara           20145.      0 

Я хотел бы создать сгенерированный столбец, который подсчитывает, сколько строк у меня в table_1.company_id = table_2.company_id, и сохраняет его в table_2.numbers_of_guys

Как мне вставить статистику запроса в качестве выражения по умолчанию?

SELECT COUNT(table_1.id)
FROM table_2
INNER JOIN table_1 USING (company_id)

1 Ответ

1 голос
/ 23 марта 2020

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

SELECT t2.`company_id.`, t2.`street.`, t2.`cap.` , COUNT(table_1.id)
FROM table_2 t2
LEFT JOIN table_1 t1 on t1.company_id = t2.`company_id.`
group by t2.`company_id.`, t2.`street.`, t2.`cap.` 

Кстати, действительно, имена столбцов таблицы действительно заканчиваются с полной остановкой, если вам всегда нужно заключить их в кавычки. Кроме того, хотя использование синтаксически корректно, лучше (на мой взгляд) явно указать обе стороны объединения, также обратите внимание на соединение ВЛЕВО.

...