Steve
Steve

Reputation: 596

Showing data from another table if it exists

I am having a hard time trying to get the correct data out of my DB.

I have a couple of tables:

events_template          laser_events
| id | something |       | id  | extid |   added   |
==================       ===========================
|  1 | something |       |  1  |   7   |   added   |
|  2 | something |       |  2  |   4   |   added   |
|  3 | something |       |  3  |   2   |   added   |
|  4 | something |       |  4  |   1   |   added   |
|  5 | something |       |  5  |   9   |   added   |
|  6 | something |       |  6  |   3   |   added   |
|  7 | something |
|  8 | something |
|  9 | something |
| 10 | something |
| 11 | something |
| 12 | something |
| 13 | something |
| 14 | something |

What I am trying to do is get some output that will show me the results of both tables together linked by id and extid, but still show the results from events_template even if there isn't a matching laser_events row.

I've tried something like

SELECT 
     id,  
     extid 
FROM 
     events_template, 
     laser_events 
WHERE 
     events_template.id = laser_events.ext_id;

But that doesn't show me the events_template rows if there isn't a matching laser_events row.

Any help would be appreciated!

Upvotes: 1

Views: 31

Answers (1)

Giorgos Betsos
Giorgos Betsos

Reputation: 72165

You have to use LEFT JOIN:

SELECT e.id, l.ext_id 
FROM events_template e
LEFT JOIN laser_events  l ON e.id = l.ext_id;

Upvotes: 2

Related Questions