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