【问题标题】:Another instance of mysql query join另一个mysql查询连接实例
【发布时间】:2017-12-21 08:31:43
【问题描述】:

我有以下表格-

  1. 具有以下字段的事务表 -

    transactionId, userId, merchantId

  2. 具有userIDdetails 的用户表

  3. 带有merchantIddetails 的商家表

可能有一些交易条目的商家 ID 为空。

我想获得merchantId 的交易报告以及商家详细信息。所有的交易都应该在报告中。对于没有商户ID的交易,商户字段可以为NULL。

这样的 LEFT 连接不会返回 merchantId 的条目为 null,因为 merchantId 字段在事务表中为 null -

查询:

SELECT vt.*,
       u.userDetails,
       m.merchantId,
       m.merchantDetails
FROM TRANSACTION AS vt
LEFT JOIN merchant AS m ON vt.merchantId = m.merchantId
JOIN users AS u ON vt.userId = u.userID;

这可以单独加入吗?

【问题讨论】:

  • 请在您的问题中包含示例数据、表格定义和预期输出
  • 你确定它没有因为用户不存在而失败吗?

标签: mysql join


【解决方案1】:

您的查询可以正常工作。它返回表'transaction'中的所有交易,如果merchantId为NULL,则商家详细信息为null......但交易仍在列表中。

自己看看(我插入了 4 笔交易,其中 1 笔在 MerchantId 字段中为 NULL):

SQLFiddle DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多