в общем виде JOIN - аналог выбора из двух таблиц, связанных между собой по каким-то полям (полю)
SELECT a.id, b.qq FROM a_table a, b_table_b WHERE a.column1=b.column2;
можно записать, как *
SELECT a.id, b.qq FROM a_table a
JOIN b_table_b ON a.column1=b.column2;
(или, по крайней мере в постгресе можно еще сказать USING c, если с - поле связи, одинаково названное в обоих таблицах.
Дальше начинается самое интересное, когда можно присоединять не все данные одной, или другой таблицы
LEFT JOIN, RIGHT JOIN
Тут надо иметь в виду
оптимизацию запросов в mysql
Дальше еще интересней, но, честно говоря, по-моему, это не должно работать : в постгресе (и, по-моему вообще по SQL-стандартам, поправьте кто-нибудь, если не так

можно на связываемые таблицы наложить разные (в том числе и по order и group by условия), например: (кусок работающего примера из postgres-а)
Код:

SELECT ............
FROM participant_view p
JOIN
* *(
* * *SELECT
* * * *dst, src,
* * * *0- sum(amount) AS amount,
* *currency
* * *FROM trlog
* * *WHERE
* * stamp <= '%s' AND
status = %d GROUP BY dst, currency, src
* *) t ON (t.dst = p.id and t.src > 0)
JOIN currency c ON (c.id=t.currency)
......
ORDER BY p.name
Вот. Собственно, когда я писала - имела в виду последний случай, но, боюсь, он в MySQL смысла не имеет
В твоем случае, скорее, для MYSQL можно использовать
UNION