MSAccess错误?筛选器似乎会影响左联接的底层查询?

时间:2018-06-29 13:26:18

标签: database ms-access join database-design left-join

我有一个查询,该查询只是获取一个表,然后通过1个表上的2个字段和另一个表上的3个字段将其左连接到其他表,没有内部联接。

我遇到了这种奇怪的行为,在该行为中,整个查询似乎针对已连接表之一中的特定字段返回空白。此行为通常表示查询未在联接表中找到任何要联接到主表的数据。问题是该数据存在。甚至更奇怪的是,如果我通过访问查询下拉列表或向查询中添加WHERE子句对空白记录进行任何过滤,则数据现在将显示为原本应该的样子。似乎我的过滤操作正在影响基础联接是否找到该值。据我了解,这不是左联接应该如何操作?有什么想法吗?从查询中删除另一个表似乎也可以解决此问题,但是为什么这会影响通过左联接检索数据?关系在下面发布以供参考。

Weird Join

编辑(已添加Sql查询):

SELECT
  tbl_Supply1.CCT_Sales_Order AS Local_SO,
  tbl_Supply1.CLEANED_CCT_SERIAL_LOT AS Local_Serial,
  tbl_Supply1.Ship_Date AS Local_Date,
  tbl_Supply1.STATUS AS Local_Status,
  tbl_Supply1.PackingLeft,
  tbl_Supply1.PackingRight,
  dbo_cct_rfb_supplyone_data.sales_order AS Supply1_SO,
  dbo_cct_rfb_supplyone_data.item_sn AS Supply1_Serial,
  dbo_cct_rfb_supplyone_data.Date AS Supply1_Date,
  dbo_cct_rfb_master_status_simple.item_cd AS Master_Item,
  dbo_cct_rfb_master_status_simple.ser_lot_no AS Master_Serial,
  dbo_cct_rfb_master_status_simple.disposition AS Master_Disposition, 
  dbo_cct_rfb_master_status_simple.linked_ret_lbl AS Master_Return_Label 
FROM 
  (
    tbl_Supply1 LEFT JOIN dbo_cct_rfb_supplyone_data ON (
      tbl_Supply1.CLEANED_CCT_SERIAL_LOT = dbo_cct_rfb_supplyone_data.item_sn
    ) 
    AND (
      tbl_Supply1.Ship_Date = dbo_cct_rfb_supplyone_data.date
    )
    AND (
      tbl_Supply1.CCT_Sales_Order = dbo_cct_rfb_supplyone_data.sales_order
    )
  ) LEFT JOIN dbo_cct_rfb_master_status_simple ON (
    tbl_Supply1.PackingRight = dbo_cct_rfb_master_status_simple.ser_lot_no
  ) 
  AND (
    tbl_Supply1.PackingLeft = dbo_cct_rfb_master_status_simple.item_cd
  );

0 个答案:

没有答案