订单

+---------+------------+----------------+----------+------------+
| OrderID | CustomerID | DateOfPurchase | Discount | DueDate    |
+---------+------------+----------------+----------+------------+
|      82 |          7 | 2022-04-17     | 0        | 2022-05-17 |
|      83 |         91 | 2022-04-17     | 0        | 2022-05-17 |
|      84 |          8 | 2022-04-17     | 0        | 2022-05-17 |
|      85 |         91 | 2022-04-17     | 0        | 2022-05-17 |
|      86 |          7 | 2022-04-17     | 0        | 2022-05-17 |
|      87 |         91 | 2022-04-18     | 0        | 2022-05-18 |
|     109 |          7 | 2022-04-25     | 0        | 2022-05-25 |
+---------+------------+----------------+----------+------------+

客户表

+------------+----------+-------+-------+-------------+-----------------------------+----------+--------------+
| CustomerID | Fname    | Mname | Lname | Contact_no  | Address                     | Valid_id | Credit_Limit |
+------------+----------+-------+-------+-------------+-----------------------------+----------+--------------+
|          7 | John     | Dale  | Doe   | 09123654789 | Asan Sur, Sison, Pangasinan | NULL     |     5000.000 |
|          8 | Jane     | Dale  | Doe   | 09987654123 | Asan Sur, Sison, Pangasinan | NULL     |     1500.000 |
|         91 | Kurdapya | Buang | Selos | 09741258963 | Paldit, Sison, Pangasinan   | NULL     |     5000.000 |
+------------+----------+-------+-------+-------------+-----------------------------+----------+--------------+

付款表

+-----------+------------+---------+------------+----------+
| PaymentID | CustomerID | OrderID | PayDate    | Amount   |
+-----------+------------+---------+------------+----------+
|        20 |          7 |      82 | 2022-04-25 |  800.000 |
|        21 |         91 |      83 | 2022-04-17 | 2500.000 |
|        22 |         91 |      85 | 2022-04-17 |  200.000 |
|        23 |         95 |      88 | 2022-04-18 | 2122.000 |
|        24 |         96 |      90 | 2022-04-25 |  577.000 |
|        25 |         97 |     111 | 2022-04-25 |    0.000 |
|        26 |         98 |     114 | 2022-04-25 |  166.000 |
|        27 |         99 |     115 | 2022-04-25 | 1740.000 |
+-----------+------------+---------+------------+----------+

我想知道客户Kurdapya(OrderID=91)的订单ID中哪些是付费的,哪些是未付费的

这是我到目前为止try 过的问题

try 1:

select if(py.OrderID=r.OrderID, 'paid','unpaid') as remarks, r.OrderID, r.CustomerID
from orders r,
     payment py
where py.OrderID = r.OrderID and r.CustomerID = 91
GROUP by r.OrderID;

try 1的结果:

+---------+---------+------------+
| remarks | OrderID | CustomerID |
+---------+---------+------------+
| paid    |      83 |         91 |
| paid    |      85 |         91 |
+---------+---------+------------+

try 2:

select if(py.OrderID=r.OrderID and py.OrderID=py.Amount!='null', 'paid','unpaid') as remarks, r.OrderID, r.CustomerID
from orders r,
     payment py
where r.CustomerID = 91
GROUP by r.OrderID;

Result of try 2:

+---------+---------+------------+
| remarks | OrderID | CustomerID |
+---------+---------+------------+
| unpaid  |      83 |         91 |
| unpaid  |      85 |         91 |
| unpaid  |      87 |         91 |
+---------+---------+------------+

My DESIRED RESULT IS THIS:

    +---------+---------+------------+
    | remarks | OrderID | CustomerID |
    +---------+---------+------------+
    | unpaid  |      83 |         91 |
    | unpaid  |      85 |         91 |
    | paid    |      87 |         91 |
    +---------+---------+------------+

推荐答案

SELECT
  IF(py.OrderID IS NULL, 'unpaid', 'paid') AS remarks,
  r.OrderID,
  r.CustomerID
FROM orders AS r
LEFT OUTER JOIN payment AS py USING (OrderID)
WHERE r.CustomerID = 91

然而,由于订单表没有金额,我不知道支付的金额是否足以支付整个订单.

Mysql相关问答推荐

使用JSON_CONTAINS搜索多个值的原理

可以优化这个带有重复WHERE子句的查询吗?

为什么歌曲详细信息未显示在 Liked.handlebars 视图中?

带有 JOIN 和 WHERE 子句的 INSERT 语句

global max_connections 和 spring.hikari.maximumPoolSize 有什么区别?

使用索引进行查询优化

Select 最高等级最多的部门名称

0000-00-00 00:00:00 表中的日期设置为 NOT NULL

当用它的别名替换 (MAX(s.salary) - MIN(s.salary) 它将不起作用.. 为什么?

使用 DISTINCT 时无法从数据库中查询所有数据

当每组的列值发生变化时 Select 并连接行

非常规字符的不正确字符串值错误

插入重复键查询以在每一行上进行自定义更新

MYSQL 或 Laravel Eloquent 如何从这个订单中统计细节

如果在表中多次发现 a 列中的相同值,则排除所有行

MySQL Workbench - 如何同步 EER 图

If else on WHERE 子句

用户 'User'@'%' 和 'User'@'localhost' 不一样吗?

更改 Laravel 的 created_at 和 updated_at 的名称

我可以在 PHP 中使用 PDO 创建数据库吗?