gpt4 book ai didi

SQL:子查询帮助

转载 作者:行者123 更新时间:2023-11-29 09:21:20 26 4
gpt4 key购买 nike

我正在尝试在一个语句中选择两个值,而不是两个语句。第一个语句计算在 id 为 18 的特定竞赛中获胜的参赛作品数量。第二个语句计算该竞赛的奖品总数。

查询1:

SELECT 

COUNT(*) FROM entries

WHERE entries.contest=18

AND entries.won=1

查询2

SELECT SUM( quantity ) FROM prizes WHERE contest=18

我想要两者都拥有,这样我就可以在服务器端对它们进行比较,并根据比较采取行动。因此,如果我们说有 3 名参赛者赢得了第 18 届比赛,第 18 届比赛的奖品总数为 5,做某事...

架构:

CREATE TABLE `entries` (
`id` int(2) unsigned NOT NULL auto_increment,
`message_id` bigint(8) unsigned default NULL,
`user` int(2) unsigned default NULL,
`username` varchar(50) NOT NULL,
`contest` int(2) unsigned default NULL,
`message` text,
`icon` text,
`twitter_url` text,
`follower` int(2) unsigned default NULL,
`entry_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`won` int(1) default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

CREATE TABLE `prizes` (
`id` int(2) unsigned NOT NULL auto_increment,
`name` varchar(25) NOT NULL,
`contest` int(2) NOT NULL,
`quantity` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

没有 users 表,因为我控制条目,并且我很确定我不会得到任何重复项,因此这就是为条目行存储用户名等的原因。

最佳答案

由于查询根本没有任何共同点,因此您可以使用两个子查询来获得相同的结果:

select
(select count(*) from entries where contest = 18 and won = 1) as wins,
(select sum(quantity) from prizes where contest = 18) as quantity

关于SQL:子查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660182/

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