TableA Columns: A_ID, NAME, SOURCE, TITLE, EVENTID
TableB Columns: B_ID, EVENTID, CODE, FIELD
如何提取NAME,SOURCE,TITLE和FIELD或null(如果存在CODE = x)?示例应该会更好。它是SQL Server Express上的T-SQL。T-SQL从TableA中选择所有条件并在TableB上条件
实施例:
TableA | TableB
-----------------------------------------------------------------------
A_ID, NAME, SOURCE, TITLE, EVENTID | B_ID, EVENTID, CODE, FIELD
-----------------------------------------------------------------------
1 john s1 x 100 | 1 100 5 textA
2 bruce s2 y 105 | 2 100 10 textB
3 bob s3 z 110 | 3 105 5 textC
| 4 110 5 textD
| 5 110 10 textE
没有代码10 EVENTID 105所以结果应为空。如何写一个SELECT quesry这会给我这样的结果:
[ john | s1 | x | textB ]
[ bruce | s2 | y | ]
[ bob | s3 | z | textE ]
这可能是很容易的,但我不出来..在此先感谢。
谢谢解释。也适用。总是只有一个加入记录。你能告诉我,有什么办法可以扩展这个ON/AND来添加更多的这样的列吗?例如代码15(如果存在,如果不为空)。然而,价值将再次在FIELD只是用不同的代码.. – yosh
@yosh - 对于一个额外的列,我只是将'LEFT JOIN TableB B2 ON A.EVENTID = B2.EVENTID和B2.CODE = 15'添加到查询和'B2.FIELD'到选择列表。如果还有更多,我可能会考虑采用不同的方法。 –
对,我没有想到这个:)我想我只需要1-2列。非常感谢 ! – yosh