-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
  • 39,043
  • 7
  • 86
  • 102
abramlimpin
  • 4,803
  • 11
  • 57
  • 95

3 Answers3

3

Use LEFT JOIN instead of INNER JOIN.

GriGrim
  • 2,742
  • 1
  • 17
  • 31
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
  • 11,944
  • 7
  • 45
  • 70
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