mysql - MySQL WHERE子句中的子查询使用

标签 mysql where-clause

我根本不是 sql 高手,但为什么这个查询会返回错误?

SELECT username FROM history as h 
    WHERE username IS NOT NULL AND updated>1342555201 AND updated<1342641599
    AND WHERE (SELECT status FROM managers WHERE username=h.username) > 0

如何使用包含状态的第二个表上的子查询在一个查询中将状态>0 的用户名分组?

最佳答案

尝试

SELECT h.username FROM history  h 
INNER JOIN status s USING(username)
WHERE h.updated BETWEEN 1342555201 AND 1342641599
GROUP BY h.username
HAVING  s.status > 0

注意:

  • INNER JOIN将始终检索 NOT NULL 和用户名的普通值

  • 我假设两个表都有相同的列名。如果两个表有不同的列名则更改

    USING(username) with ON h.column_name = s.column_name

关于mysql - MySQL WHERE子句中的子查询使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11540493/

相关文章:

mysql - 统计 ID 如何具有相同的连接组合?

javascript - 如何通过php中的函数在浏览器中打印插入查询

php - Laravel 具有多种关系的 Eloquent 查询

mysql - 条件不起作用的地方

MySQL 使用 WHERE 子句直接 INSERT INTO

php - mySQL bool 全文搜索不返回任何结果

mysql - 日期时间值不正确 : '0000-00-00 00:00:00' for column

mysql - 使用多个 "WHERE IN"和 "OR"搜索 MySql 数据库不起作用

python - 使用 numpy.where 防止越界

python - 如何让 np.where 接受更多参数,以便它过滤 >、< 和 =;不仅仅是 > 和 <?