我在查询时遇到问题,并且对发生的情况没有任何想法。我有一个表 T1:
StoreID Product ProductShipped
KH00137 Super 18
KH00137 Regular 12
另一个表 T2,仅共享一些 StoreID:
StoreID Product Other data…
KH00137 Super …
KH00137 Regular …
我尝试使用以下查询将 StoreID 和 Product 上的 T2 左连接:
SELECT T1.StoreID, T2.StoreID, T1.Product, T1. ProductShipped
FROM T1 LEFT JOIN T2 ON (T1.Product = T2.Product) AND (T1.StoreID = T2.StoreID);
但由于某种原因,它不显示 T2 StoreID 字段之一,即使它似乎已成功连接到另一个字段:
T1.StoreID T2.StoreID T1.Product T1.ProductShipped
KH00137 Super 18
KH00137 KH00137 Regular 12
有什么想法吗?
最佳答案
没有理由假设它已成功加入。输出数据第一行中的三个非 NULL 字段中的每一个都来自 table1。
这向我表明实际上根本没有连接。
- 测试您的数据是否存在空格和大写/小写不匹配的情况。
使用LENGTH()
类型的函数可能会显示一个字符串实际上与另一个字符串不同。 (一个Super
可能有5个字符长,另一个表中的Super
可能在末尾有一个空格并且有6个字符长。或者可能是类似的东西StoreID?)
此外,这也是支持不加入文本字段的原因之一。通过将外键 ID 保留为数字(例如整数),您几乎不会经常遇到此问题,即使遇到此问题,也很容易调试和纠正。
祝你好运。
关于sql - 在两个条件上使用左连接的 Access-SQL 查询中缺少值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458497/