mysql - 选择 IF 查询

标签 mysql sql

我有一个简单的查询:

SELECT max(`id`) as `name_id` , LEFT(`name`,LENGTH(`name`)-2) AS `name`, `status` 
 FROM `users`
WHERE `site` = 1
  AND `category` = 'some'

我只需要选择那些,其中 supp == YES

SELECT `model`.`supp`
  FROM `model`, `users`
 WHERE `users`.`name_id` = `name_id_from_the_first_query`
   AND `model`.`model_id` = `users`.`model_id`;

因此,仅当第二个查询对当前 ID 返回 YES 时,我才需要第一个查询的返回值。

最佳答案

尝试,

SELECT  max(a.`id`) as `name_id` , 
        LEFT(`name`,LENGTH(a.`name`)-2) AS `name`, 
        a.`status`
FROM    `model` a 
        INNER JOIN `users` b
            ON a.`model_id` = b.`model_id`
WHERE    a.`site` = 1 AND
         a.`category` = 'some' AND
         b.`supp` = 'YES'
GROUP BY a.`name`, a.`status`

关于mysql - 选择 IF 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12400475/

相关文章:

java - Spring 数据源返回 null

mysql - 我可以有两行内容相同(除了 1 列)吗

mysql - 从 MySQL 查询中的 3 个表中获取数据

sql - 如何锁定选择,而不仅仅是插入/更新/删除

Mysql 条件求和

MYSQL:使用大表进行 INNER JOIN 的替代方案(太慢了)

php - 按查询排序花费太多时间

mysql - 如何在范围列表之间选择行

php 准备好的语句 ||语法错误或访问冲突 : 1064

mysql - 选择前 3 个最多计数组 - SQL