h如何才能真正加入示例?

Posted

技术标签:

【中文标题】h如何才能真正加入示例?【英文标题】:how h can true join in examples? 【发布时间】:2013-04-24 09:22:11 【问题描述】:

我有以下查询,但没有给出预期结果:

SELECT "invoice"."ITEMNO", 
  "invoice"."Outgoing", 
  "storeage"."incoming" 
FROM   "MVXJDTAP"."MVXJDTA"."invoice" 
INNER JOIN "MVXJDTAP"."MVXJDTA"."storeage " 
  ON "invoice"."ITEMNO" = "storeage"."itemno"
ORDER BY"storeage"."itemno"

Tables:
invoice
itemno       Outgoing
ZOMV3-94        4 
ZOMV3-94        7 

storeage
itemno      incoming
ZOMV3-94    3
ZOMV3-94    1
ZOMV3-94    60
ZOMV3-94    5 

查询给出结果:

itemno      outgoing      incoming
ZOMV3-94       4             3
ZOMV3-94       4             1
ZOMV3-94       4             60
ZOMV3-94       4             5
ZOMV3-94       7             3
ZOMV3-94       7             1 
ZOMV3-94       7             60
ZOMV3-94       7             5

但我想得到以下 TRUE 结果:

ZOMV3-94       4           NULL OR 0
ZOMV3-94       7           NULL OR 0
ZOMV3-94     NULL OR 0       3
ZOMV3-94     NULL OR 0       1
ZOMV3-94     NULL OR 0       60
ZOMV3-94     NULL OR 0       5 

我怎样才能得到这个结果?

【问题讨论】:

你为什么要“把”“所有”“of”“你的”“表”“和”“列”“名称”“放入”“引号”?似乎没有充分的理由 - 除非您的意图是让您的代码极难阅读。 【参考方案1】:

您可以使用UNION ALL 而不是JOIN 来获得结果:

select itemno,
  outgoing,
  null as incoming
from invoice
union all
select itemno,
  null,
  incoming
from storeage;

见SQL Fiddle with Demo。这给出了一个结果:

|   ITEMNO | OUTGOING | INCOMING |
----------------------------------
| ZOMV3-94 |        4 |   (null) |
| ZOMV3-94 |        7 |   (null) |
| ZOMV3-94 |   (null) |        3 |
| ZOMV3-94 |   (null) |        1 |
| ZOMV3-94 |   (null) |       60 |
| ZOMV3-94 |   (null) |        5 |

【讨论】:

这与我使用的路线相同 谢谢,但当我加入 TABEL 3 时 我无法添加另一个表(产品 DT。)所以添加 DISCRIBTION CULOMN @BelalIt 请发布一个新问题,其中包含有关添加新表的详细信息。 我想使用另一张桌子 ZOMV3-94 4 ZOOM LKY

以上是关于h如何才能真正加入示例?的主要内容,如果未能解决你的问题,请参考以下文章

什么是真正的 sef-join?

BackgroundWorker,我怎样才能显示真正的进步? C# Winforms

如何才能真正的提高自己,成为一名出色的架构师?

如何用python创建虚拟环境?掌握这些技术你才能真正的进步

加入多个字段,只过滤真正不同的行

isAuthenticated() 如何真正起作用?