I am having a terrible time trying to understand the outer join syntax
for MySQL (Our sever version is: 3.23.56).

I have three tables I want to join two of which by inner joins and the
other by an outer join.

Here are my example tables:

table1:
+------+------+
| id   | key  |
+------+------+
| 4321 | 1111 |
+------+------+

table2:
+------+------+-------------+
| id   | type | weird       |
+------+------+-------------+
| 4321 | one  | 1234-xxx-98 |
| 4321 | two  | NULL        |
+------+------+-------------+

table3:
+------+----------+-----+
| prid | name     | cid |
+------+----------+-----+
| 1234 | Success! | 98  |
| 1234 | Failure! | 87  |
+------+----------+-----+


The following query gives me only one row with the contents of table2,
row1 and t3, row1.name:

select 
  t2.*,
  t3.name
 from 
  table1 t1, 
  table2 t2, 
  table3 t3 
 where 
   t1.key = 1111 
  and 
   t1.id = t2.id 
  and 
   t3.prid = substring_index(t2.weird, '-', 1) 
  and 
   t3.cid = substring_index(t2.weird, '-', -1);


How do I change the query so that I get table2, row 2 as well with the
name field blank (or NULL)?

I thought I might use outer joins, but the syntax and online manual is
just confusing me.

Thanks.

-- Nathan Christiansen
   Software Engineer
   Tahitian Noni International
   http://www.tahitiannoni.com



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to