MySQL JOIN 两个表查询

标签 mysql join

我有两个具有以下结构的表:

  1. 客户

    • id_customer
    • 客户名称
    • 客户电子邮件
    • 客户地址
  2. 订单

    • id_order
    • 订单号
    • customer_id
    • 订单价格
    • 付款
    • 订单日期

我需要一个查询,为我提供来自“customers”的所有“id_customer”,这些“id_customer”位于表“orders”/“customer_id”中,其中“order_price”>“payment”且“odrer_date”至少为 30 天前

最佳答案

从本质上讲,SQL 是一种操作集合的方法。您从子查询开始,以确定与 orders 表中的条件相匹配的 customer_id 值集。

                        SELECT DISTINCT customer_id
                          FROM orders
                         WHERE order_price > payment
                           AND order_date <= CURDATE() - INTERVAL 30 DAY

然后使用该子查询从 customers 表中获取数据。

    SELECT *
      FROM customers
     WHERE id_customer IN (
                            SELECT DISTINCT customer_id
                              FROM orders
                             WHERE order_price > payment
                               AND order_date <= CURDATE() - INTERVAL 30 DAY
                          ) 

关于MySQL JOIN 两个表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876598/

相关文章:

android - 如何在离线应用程序中使用 mysql?

mysql - 困难的 MySQL 查询 - 获取日期之间的最大差异

mysql - MySQL中如何连接两个表?

mysql - 每个表处理几百万条记录,查询似乎没有工作和优化,但执行时间很长

php - 如何从mysql准备语句中的两个表中选择值

php - 如何在 zend 框架中创建自动执行模块?

mysql - SQL 查询以查找其中包含多个字符串 "a href"的列

sql - Where 子句检查另一个表中的两列

mysql - 获取行并标记存在于另一个表中的一些行

mysql - If then join else 其他加入