我是SQL新手,需要结合三个SQL查询的帮助。SQL - 如何组合这三个SQL查询?
查询1
SELECT max(level) level FROM tablename WHERE id = 1
这样做的结果是在本实施例3中,该值将在查询中使用2
查询2
SELECT max(run) run FROM tablename WHERE id = 1 AND level = 3;
的这个例子中的结果是1,这个值将在查询3中使用。
查询3
SELECT levelpassed FROM tablename WHERE id = 1 AND level = 3 AND run = 1;
下面是表的结构:
CREATE TABLE `tablename` (
`id` int(11) NOT NULL,
`date` datetime NOT NULL,
`level` int(11) NOT NULL,
`run` int(11) NOT NULL,
`cr` int(11) NOT NULL,
`fr` int(11) NOT NULL,
`dv` int(11) NOT NULL,
`levelpassed` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
这里是主键:
ALTER TABLE `tablename`
ADD PRIMARY KEY (`id`,`date`);
我需要知道的所有三个值来自查询。最大水平,最大运行和水平通过。
谢谢你的帮助!
这三者的结合也不会比在单独的方式执行它们更高效。实际上,在任何DBMS引擎中,我知道你不应该把它们合并起来,因为它们有不同的“where”子句。 – evenro 2014-08-27 12:58:46
请描述它的需求(在用例类型的故事中),而不是某人可能能够帮助你的需求。没有它,很难(至少对我来说)试图想象它的用例 – evenro 2014-08-27 13:03:25
id/level/run是否是唯一的,最后一个查询是否总是返回一行? – 2014-08-27 13:08:08