【问题标题】:FULL OUTER JOIN - mysql完全外部连接 - mysql
【发布时间】:2013-11-30 10:33:47
【问题描述】:

我有两个表,第一个表称为“提交”,第二个表称为“区域”

******** 提交表******** userid statusid no name area 月份 年份 dateupdated 62 2 763 ABCD 巴西 6 2013 2013-11-26 15:28 62 1 869 ABC 巴西 7 2012 2013-11-26 15:10 62 2 869 ABC 巴西 6 2013 2013-11-26 15:28 62 1 869 ABC 巴西 6 2013 2013-11-26 14:50 61 1 763 ABCD 巴西 6 2013 2013-11-26 14:50 54 1 200 ABCDE 美国 12 2013 2013-11-26 21:02 32 2 200 ABCDE 美国 12 2013 2013-11-26 21:03 ******* 面积表 ******** 无名区 763 ABCD 巴西 869 ABC 巴西 869 ABC 巴西 869 ABC 巴西 763 ABCD 巴西 200 ABCDE 美国 200 ABCDE 美国

我的过程:

  • 用户选择状态
  • 用户选择月份
  • 用户选择年份
  • 全部通过下拉菜单 (SELECT)

一旦他们选择了 3 个字段,就会显示过滤后的数据。

我想要达到的目标:

我希望记录按照上面的 SELECTS 显示(目前可以正常工作) 我还想显示“区域”表中的所有记录以及“提交”表中不存在数据的位置。我想要的输出示例如下:

userid statusid no name area 月份 年份 dateupdated 62 2 763 ABCD 巴西 6 2013 2013-11-26 15:28 62 1 869 ABC 巴西 7 2012 2013-11-26 15:10 62 2 869 ABC 巴西 6 2013 2013-11-26 15:28 62 1 869 ABC 巴西 763 ABCD 巴西 200 ABCDE 美国 200 ABCDE 美国

总而言之,我需要将所选记录显示为 SELECTS,但还需要显示区域表中的所有记录。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以在此处使用左外连接。基本上,您想从区域表中选择所有记录并从提交表中选择匹配的行。

    查询看起来像 -

    select sb.userid, sb.statusid, a.no, 
           a.name, sb.area, sb.month, 
           sb.year, sb.dateupdates 
      from area a left outer join submission sb
        on (a.no = sb.no)
    

    【讨论】:

    • 这是无效的 SQL(也不是左连接)
    • 感谢您的回答,但我没有看到 LEFT OUTER JOIN?我已经对其进行了测试,不幸的是它不起作用..有人有任何解决方案吗?
    • 对不起,我修改了sql,我错过了输入左外连接
    • 当您将 WHERE 添加到您的语句中时,它只会反映选定的字段。它不显示所有记录
    • 你在 where 子句中添加了哪个条件?
    猜你喜欢
    • 2013-03-11
    • 2021-10-12
    • 2017-07-05
    • 2017-06-09
    • 2011-12-26
    • 1970-01-01
    • 2011-12-20
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多