【发布时间】:2009-11-02 09:19:15
【问题描述】:
我试图在一个语句而不是两个语句中选择两个值。第一个语句计算 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 表,因为我控制条目,而且我很确定我不会得到任何重复项,所以这就是为条目行存储用户名等的原因。
【问题讨论】: