* John Hughes
> I have three tables:
>
> students has student_id and student_name
> parents has parent_id and parent_name
> parentlog has student_id and parent_id
>
> I want to search the parentlog WHERE student_id = some_id
> GROUP BY parent_id
>
> (This will bring back two rows when there are two parents)
>
> At the same time I want to get the name of the student that
> matches student_id and the name of the parent.
>
> I can LEFT JOIN students with parentlog USING(student_id) but
> I can't figure how I can join the parents so that I can get
> the name of match for the parent_id.
>
> Can I join three tables and search all in one pass?
Yes, and LEFT JOIN may not be needed:
SELECT students.*,parents.*
FROM parentlog,students,parents
WHERE
students.student_id = parentlog.student_id AND
parents.parent_id = parentlog.parent_id
Using LEFT JOIN:
SELECT students.*,parents.*
FROM parentlog
LEFT JOIN students USING(student_id)
LEFT JOIN parents ON
parents.parent_id = parentlog.parent_id
USING can not be used in the second join because it relates to the previous
table, which in this case is students, and that table has no parent_id. By
using ON you can join with any table in your table list.
More details can be found in the manual:
<URL: http://www.mysql.com/doc/J/O/JOIN.html >
--
Roger
query
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php