Bruce:

The problem is that you have universityTBL listed twice in your list of tables. Here is your statement, with numbers for each of the sources.

SELECT schoolTBL.name, universityTBL.name
FROM (1) universityTBL, (2) schoolTBL
LEFT JOIN (3) universityTBL ON schoolTBL.universityID = universityTBL.ID
WHERE universityTBL.name = 'sam'


The syntax I think you want is:
SELECT schoolTBL.name, universityTBL.name FROM schoolTBL LEFT JOIN universityTBL ON schoolTBL.universityID = universityTBL.ID WHERE universityTBL.name = 'sam'


Wes


On Jul 4, 2004, at 11:36 PM, bruce wrote:

hi...

i'm trying to figure out how to deal with joins (left/right)..

i have the following test tbls...

create table universityTBL(
        name varchar(50) not null default '',
        ID int(10) not null auto_increment,
        primary key (ID),
        unique key (name)
        )type =MyISAM;


create table schoolTBL( name varchar(50) not null default '', universityID int(10) not null, ID int(10) not null auto_increment, primary key (ID), unique key (name, universityID) )type =MyISAM;

mysql> describe universityTBL;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| name  | varchar(50) |      | UNI |         |                |
| ID    | int(10)     |      | PRI | NULL    | auto_increment |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> describe schoolTBL;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| name         | varchar(50) |      | MUL |         |                |
| universityID | int(10)     |      |     | 0       |                |
| ID           | int(10)     |      | PRI | NULL    | auto_increment |
+--------------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from universityTBL;
+------+----+
| name | ID |
+------+----+
| sam  |  1 |
| bed  |  2 |
+------+----+
2 rows in set (0.00 sec)

mysql> select * from schoolTBL;
+----------+--------------+----+
| name     | universityID | ID |
+----------+--------------+----+
| medicine |            1 |  1 |
+----------+--------------+----+


i want to be able to produce a select where schoolTBL.universityID = university.ID.


i can get the results using a straight select with a where" and a "and" clause:
this works...
mysql> select s1.name,u1.name
-> from universityTBL as u1, schoolTBL as s1
-> where u1.ID=s1.universityID
-> and u1.name='sam';
+----------+------+
| name | name |
+----------+------+
| medicine | sam |
+----------+------+
1 row in set (0.00 sec)



however, i'm trying to get the results using a join. i've tried the follwoing with no luck..
mysql> select schoolTBL.name, universityTBL.name
-> from universityTBL , schoolTBL
-> left join universityTBL on universityTBL.ID=schoolTBL.universityID
-> where universityTBL.name='sam';
ERROR 1066: Not unique table/alias: 'universityTBL'


any thoughts/comments as to what's wrong... it's got to be something basic... perusing through google/mysql/etc.. hasn't shed any light on where the issue is...

thanks for any comments/criticisms/etc...

=bruce




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





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



Reply via email to