-1

TableA

AID     AName
1       Alpha
2       Bravo
3       Charlie

TableB

BID     BName
1       Delta
2       Echo
3       Foxtrot

TableC

CID     AID     BID
1       1       null
2       null    2
3       3       null

I am using the following SQL statement:

SELECT C.CID, A.Name AS First, B.Name AS Second FROM TableC 
INNER JOIN TableA ON TableC.AID = TableA.AID
INNER JOIN TableB ON TableC.BID = TableB.BID

but displays a blank record. The expected result should be:

CID     First     Second
1       Alpha
2                 Echo
3       Charlie

Any suggestions?

Sachin
  • 40,216
  • 7
  • 90
  • 102
abramlimpin
  • 5,027
  • 11
  • 58
  • 97

3 Answers3

3

Use LEFT JOIN instead of INNER JOIN.

GriGrim
  • 2,891
  • 1
  • 19
  • 33
1

Use LEFT JOIN for each A, B table

SELECT C.CID, A.AName, B.BName
FROM C
LEFT JOIN A ON C.AID = A.AID
LEFT JOIN B ON C.BID = B.BID
Andre Figueiredo
  • 12,930
  • 8
  • 48
  • 74
1

SELECT C.CID, A.Name AS First, B.Name AS Second FROM TableC LEFT JOIN TableA ON TableC.AID = TableA.AID LEFT JOIN TableB ON TableC.BID = TableB.BID

Swathi
  • 84
  • 1