MySQL查询没有提供所需的结果

我已经尝试了好几天了,但无法提出解决方案。 这是表格方案。

这是我当前的查询。

SELECT DISTINCT `address`, `order`.`id` 
  FROM `order`, `ordered_articles`
 WHERE `order`.`id` = `f_order_id`
   AND `Status` > 1
   AND `Status` <4;

问题是只要有一篇文章的状态大于1,查询就会返回。我需要一个查询,其中该顺序的所有文章的状态都大于1。

评论
  • seaque
    seaque 回复

    You can do it with NOT EXISTS:

    SELECT o.`address`, o.`id` 
    FROM `order` o
    WHERE NOT EXISTS (
      SELECT 1 FROM `ordered_articles`
      WHERE `f_order_id` = o.`id`
      AND (`Status` <= 1 OR `Status` >= 4 )
    );