1
我有兩個表,一個有怪物名稱及其各自的得分:MySQL的(初級):基於查詢的答案從另一個表替換字段
CREATE TABLE `mobscores` (
`name` TINYTEXT NOT NULL ,
`score` TINYINT NOT NULL
);
和一個與我的服務器上的實際擊殺
CREATE TABLE `mobkills` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` tinytext NOT NULL,
`mob` tinytext NOT NULL,
`item` smallint(6) NOT NULL DEFAULT '0',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
現在我可以做蠻力的方式,並將第一個表格讀入一個散列(在這裏使用Perl,但對於這個問題應該沒有關係),在告訴MySQL我讀了mobkills行後,我從一個球員從$ whateverdate想要殺死,然後使用返回暴徒田野上有h檢索得分以添加到總計。 但我知道,SQL是強大的,這樣我不需要做我自己。 所以,問題是,我怎麼告訴MySQL交流,甚至從表mobscores分數算在一起,暴徒的名字嗎?
像這樣的東西(幻想語法傳入,因爲我不知道真實的):
SELECT score (AS score FROM mobscores WHERE name=mob)
FROM mobkills
WHERE name= 'McMiner' AND date >= SomeQueryDateToStartFrom;
我不知道如果MySQL甚至可以加起來的分數我,讓我不需要在Perl腳本中這樣做,但這是可選的。 在此先感謝。 :)
編輯: 耶,多虧rkosegis暗示我得到這個。 :d
SELECT name, sum((SELECT score FROM mobscores WHERE mobscores.name = mobkills.mob))
as score
FROM mobkills group by name order by score desc
不能投票了,但是這是非常有益的,謝謝! – BastetFurry
如果一切正常,你應該是能者多勞標記爲接受的答案... – JezB
完成。 :) 感謝您的提醒。 – BastetFurry