如何在mysql中为生成的列使用select语句?

问题描述 投票:0回答:1

我有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)
mysql mysql-workbench mysql-python
1个回答
0
投票

您不应该存储容易计算的列,否则您可以扩展查询以包括分组依据。

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.` 

顺便说一句,如果您的表列名确实以句号结尾,那么您总是需要将它们括在反引号中。另外,尽管使用在语法上是正确的,但(在我看来)最好明确声明连接的两端,也请注意LEFT连接。

© www.soinside.com 2019 - 2024. All rights reserved.