首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql左转JOIN查询,最大值在哪里

mysql左转JOIN查询,最大值在哪里
EN

Stack Overflow用户
提问于 2014-05-19 20:30:55
回答 2查看 42关注 0票数 0

好的,我有一个数据库,并建立了这样的查询

http://sqlfiddle.com/#!2/c03e8/11

然而,对于我的世界来说,我无法弄清楚如何达到我的最终目标,那就是隐藏第十行,因为那一行有"tamed" = 1

谁能给我指出正确的方向?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-19 20:34:29

简单,只需选择您的选择,并添加一个额外的地方

代码语言:javascript
运行
复制
SELECT id, name, level, location, tamed
FROM (
-- your inside select here
) as temp
WHERE temp.tamed <> 1
票数 1
EN

Stack Overflow用户

发布于 2014-05-19 20:47:50

使用下面的查询.第10行消失了。从where子句中删除条件并添加到联接条件。另外,我让您的第一个连接类型是INNER JOIN,而不是LEFT JOIN。这样,当条件不匹配时,将根本不返回该行。您对我更新的查询的修改-- http://sqlfiddle.com/#!2/835b3b/28

代码语言:javascript
运行
复制
SELECT  `t1` . * , MAX(
CASE WHEN  `info_types`.`name` =  "level"
THEN  `t1_info`.`value`
ELSE NULL
END ) AS  "level", 
MAX(
CASE WHEN  `info_types`.`name` =  "location"
THEN  `t1_info`.`value`
ELSE NULL
END ) AS  "location", 
MAX(
CASE WHEN  `info_types`.`name` =  "tamed"
THEN  `t1_info`.`value`
ELSE NULL
END ) AS  "tamed"
FROM `t1` 
INNER JOIN  `t1_info` 
ON  `t1`.`id` =  `t1_info`.`t1_id`
AND `t1`.`id` !=10
LEFT JOIN  `info_types` 
ON `t1_info`.`type_id` = `info_types`.`id`
and `t1_info`.`value` !=1       
GROUP BY  `t1`.`id`;

编辑:

在posted花式查询中,将第二个左联接更改为如下所示,第10行的tammed列也将是NULL。否则,按照其他答案中的建议,选择外部选择。

代码语言:javascript
运行
复制
LEFT JOIN  `info_types` 
ON `t1_info`.`type_id` = `info_types`.`id`
AND `t1_info`.`type_id` != 3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23746708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档