【问题标题】:Return all rows from both queries/tables with left join使用左连接返回两个查询/表中的所有行
【发布时间】:2018-02-01 09:32:34
【问题描述】:

我有两个要连接的子查询,第一个返回以下数据:

array (size=110)
  0 => 
    array (size=3)
      'scans' => string '7' (length=1)
      'bonus_points' => string '0' (length=1)
      'date' => string '2017-06-13' (length=10)
  1 => 
    array (size=3)
      'scans' => string '20' (length=2)
      'bonus_points' => string '0' (length=1)
      'date' => string '2017-06-14' (length=10)

第二个:

array (size=21)
  0 => 
    array (size=2)
      'redeems' => string '1' (length=1)
      'date' => string '2017-06-14' (length=10)

如果我像这样对这两个进行左连接:

LEFT JOIN query2 ON query2.date=query1.date;

我得到以下信息:

array (size=110)
  0 => 
    array (size=4)
      'scans' => string '7' (length=1)
      'bonus_points' => string '0' (length=1)
      'date' => null
      'redeems' => null
  1 => 
    array (size=4)
      'scans' => string '20' (length=2)
      'bonus_points' => string '0' (length=1)
      'date' => string '2017-06-14' (length=10)
      'redeems' => string '1' (length=1)

一切都如我所愿,除了左查询并不总是与右查询具有相同的日期,然后结果是'date' => null

如何保留两个查询中的数据?

【问题讨论】:

  • @splash58 left outer 与仅 left、right 和 full external 相同,仅返回第二个表中的行

标签: php sql


【解决方案1】:

从左侧表中选择date 列,而不是从右侧(连接)表中选择。

【讨论】:

  • 其实这个可行,谢谢,这么简单的解决方案
猜你喜欢
  • 1970-01-01
  • 2011-06-10
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
相关资源
最近更新 更多