如何对 mysql 中的生成列使用 select 语句?
How to use a select statement for a generated column in mysql?
我有 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)
您不应存储容易计算的列,您可以扩展查询以包括分组依据。
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.`
顺便说一句,您的 table 列名称是否真的以句号结尾,如果是这样的话,您总是需要将它们括在反引号中。此外,尽管 using 在语法上是正确的,但最好(在我看来)明确说明连接的两侧,还要注意 LEFT 连接。
我有 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)
您不应存储容易计算的列,您可以扩展查询以包括分组依据。
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.`
顺便说一句,您的 table 列名称是否真的以句号结尾,如果是这样的话,您总是需要将它们括在反引号中。此外,尽管 using 在语法上是正确的,但最好(在我看来)明确说明连接的两侧,还要注意 LEFT 连接。