【问题标题】:How to use a select statement for a generated column in mysql?如何在 mysql 中对生成的列使用 select 语句?
【发布时间】:2020-07-04 00:36:49
【问题描述】:

我有 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】:

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

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

顺便说一句,如果您总是需要将它们括在反引号中,那么您的表列名称是否真的以句号结尾。此外,虽然 using 在语法上是正确的,但最好(在我看来)明确说明联接的两侧,还要注意 LEFT 联接。

【讨论】:

    猜你喜欢
    • 2013-09-17
    • 2012-06-15
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2011-09-08
    • 2021-12-12
    相关资源
    最近更新 更多