gpt4 book ai didi

mysql - DBIx::Class:计算相关表中具有特定值的条目

转载 作者:行者123 更新时间:2023-11-30 23:18:18 26 4
gpt4 key购买 nike

我有两个 MySQL 表 humans 和 dogs:

TABLE humans:
id int, name varchar(32)
TABLE dogs
id int, human int, dead int

每个人都可以养零条或多条狗。如果狗死了,则整数 dead 设置为“1”。现在我想数一数所有养过死狗的人。

在 SQL 中,这可以通过以下方式完成:

SELECT COUNT(*) FROM humans WHERE
(SELECT count(*) FROM dogs WHERE humans.id = dogs.human AND dead = 1) > 0

我如何使用 Perls 出色的 DBIx::Class 实现这一点?

最佳答案

用子查询很好地解决这个问题很困难,因为 SQL::Abstract(DBIx::Class 使用它来构建查询)假设你的 的元素中总是有列名>WHERE 子句。您可能不得不求助于文字 SQL:

my $count = $schema->resultset('Humans')->count(
\[ '(SELECT COUNT(*) FROM dogs WHERE human = me.id AND dead = 1) > 0' ]
);

关于mysql - DBIx::Class:计算相关表中具有特定值的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16613479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com