【问题标题】:MySQL - Compare each field with the rest of the databaseMySQL - 将每个字段与数据库的其余部分进行比较
【发布时间】:2011-02-19 23:37:48
【问题描述】:

我正在疯狂地试图用纯 MySQL 而不用 PHP 来解决这个问题。

只有当该行与数据库其余部分的比较给出某个不重要的数字时,我才想选择行。

我想要达到的目标是这样的:

SELECT * FROM table WHERE 字段 > (SELECT f FROM table WHERE date

【问题讨论】:

  • 不太清楚我是否理解。但是使用 max(f) 并不是您想要的,对吧?
  • 您想过滤field 多于子查询中的任何 行的位置吗?还是超过全部

标签: mysql select conditional


【解决方案1】:

我假设括号中的查询不返回单个值(因为 date

我认为您需要尝试并做的是在 table2 和 table1 之间建立关系,以便您可以进行每行字段单元格的比较。

例如

SELECT * FROM table1 t1 
INNER JOIN (SELECT f FROM table2 WHERE data < xxx) t2 
ON t1.foo = t2.bar
WHERE t1.field > t2.f

【讨论】:

    【解决方案2】:

    我怀疑你想要的是组、计数和拥有的组合。例如,如果您想查找自某个日期以来发表超过 10 个帖子的所有用户,您可以这样做

    SELECT *, COUNT(posts.id) as pcount 
    from users 
    left join posts on (posts.user = users.id AND post_made > ZZZ)  
    HAVING COUNT(posts.id) > 10
    

    having 子句让您可以像 where 子句一样使用聚合字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 2011-12-31
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      相关资源
      最近更新 更多