【问题标题】:Left join not working in access左连接在访问中不起作用
【发布时间】:2016-07-31 14:06:36
【问题描述】:

我正在尝试进行左连接以访问来自不同表的两列之间的记录,但其中一列的数据未显示。

SQL 代码:

SELECT [TABLE 1].[CODE 1], [TABLE 2].[CODE 2]
FROM [TABLE 2] 
LEFT JOIN [TABLE 1] 
ON [TABLE 1].[CODE 1]=[TABLE 2].[CODE 2];

【问题讨论】:

  • 请向我们展示表 1 和表 2 中的数据,以及您的预期结果。
  • 帖子已更新。我添加了表1和表2的图像
  • 我没有看到两个表之间的任何匹配值。为什么您希望显示table 1 的数据?您的预期结果究竟是什么?我有一种感觉,您对联接的工作方式存在根本性的误解。
  • 我有 130 万条记录,很难搜索到每条匹配的记录。我想确保表 1 中的记录在表 2 中也可用

标签: sql ms-access left-join


【解决方案1】:

对我来说,这表明列值不同,它们是相同的数据类型吗?一个是否有前导零,而另一个没有?

这些值必须完美匹配才能使联接起作用。

【讨论】:

  • 我只能看到代码 2 的数据,但代码 1 什么也看不到。代码 1 在代码 2 中有相应的值。
  • 代码 1 一开始是空白的,我的建议是否将问题转移到另一列?
  • 两个代码都有空格,但还是应该有值
  • 我已经更新了我的答案,因为我意识到连接根本找不到匹配的值。
  • 都有前导值和短文本数据类型
【解决方案2】:

将您的 LEFT JOIN 更改为 INNER JOIN。你看到结果了吗?这将表明在代码 2 中至少有一些代码 1。

现在改回 LEFT JOIN 并交换表(即“从表 1 中获取所有记录并与表 2 进行比较”)并添加 WHERE [TABLE 2].[CODE 2] IS NULL。这将为您提供所有与代码 2 不匹配的代码 1。像这样的:

SELECT [TABLE 1].[CODE 1], [TABLE 2].[CODE 2]
FROM [TABLE 1] 
LEFT JOIN [TABLE 2] 
ON [TABLE 1].[CODE 1]=[TABLE 2].[CODE 2]
WHERE [TABLE 2].[CODE 2] IS NULL;

如果你没有得到数据,那就意味着一切都匹配。

【讨论】:

    【解决方案3】:
    Left join with sub-query may work.
    **Ex:**
    Here I have 2 tables. One is apps_list table, contain app info like email, application_id, application_name.
    And another is daily_report, contain revenue, data and application_id. Some application has no revenue. 
    
    **Worked:(used sub-query)**
    
    select b.email, b.application_id, 
           d.revenue
      FROM 
      (
        select application_id, revenue
        FROM [my_db_name].[dbo].[daily_report]
        where date = '2020-11-01'
      ) as d
      right join [my_db_name].[dbo].[apps_list] b
      on b.application_id = d.application_id
      
    
    **Not Worked: (as usual way)**
    
      select b.email, b.application_id, d.revenue
        FROM [my_db_name].[dbo].[apps_list] b 
        left join [my_db_name].[dbo].[daily_report] d
        on d.application_id = b.application_id
      where 
        d.date = '2020-11-01'
    
    
    
        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 2012-09-10
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多