0
我想在一個語句中選擇兩個值而不是兩個語句。第一個陳述是計算具有18的特定比賽獲勝的條目數。第二個陳述計算該比賽的總獎金數量。SQL:子查詢幫助
查詢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
表,因爲我控制的條目,我敢肯定,我不會得到任何重複,所以這就是爲什麼用戶名等存儲的條目行。
真棒,謝謝。我只是意識到,我並沒有真正追蹤誰贏得了什麼獎項,而只是當參賽者贏了或不贏時,「won」默認爲0.我應該將「won」設置爲獎金的pk而不是「1」 '? – 2009-11-02 09:34:58
嗯,只是覺得0或1可能是pk,我也可以更新獎品表,所以'id' pk從2開始。如果你可以參加,這將是非常棒的。 – 2009-11-02 09:41:41
@meder:而不是「贏「字段,你可以有一個可以爲空的」prize_id「字段。對於非贏局來說,空值將是一個更明顯的指標,而不是一個像零的幻數。 – Guffa 2009-11-02 09:51:48