Под alias я подразумевал логическое назначение AS. Создание временной таблицы я дал ссылку, надо же ж ее хоть посмотреть.
Или ты не понимаешь назначения JOIN или не понимаешь, что нужно или используешь плохую версию mysql.
Пойдем другим путем.
Есть три таблицы t1,t2,t3 с полями ID и text. Нам надо объединить их, таким образом, чтобы значения t2,t3 были не обязательным.
Таблицы примера создавались на сервере версии 5.0.45.
В самом примитивном виде это реализует следующий запрос:
Код:
SELECT *
FROM t1
LEFT JOIN t2 USING(ID)
LEFT JOIN t3 USING(ID);
В результате мы получим таблицу из трех объединенную по ID этих трех таблиц.
Код:
+----+-------+-------+------+
| ID | text | text | text |
+----+-------+-------+------+
| 1 | text1 | text2 | NULL |
+----+-------+-------+------+
Где каждой строке уникального ID будет соответствовать три значения поля text из трех таблиц. В данном случае в таблице t3 не было значения для ID=1.
Теперь облегчим немного выборку значений и добавим немного данных в наши таблицы:
Код:
t1:
+----+-------+
| ID | text |
+----+-------+
| 1 | text1 |
| 2 | text1 |
+----+-------+
t2:
+----+-------+
| ID | text |
+----+-------+
| 1 | text2 |
+----+-------+
t3:
+----+-------+
| ID | text |
+----+-------+
| 2 | text3 |
+----+-------+
Код:
SELECT
t1.ID,
t1.text AS text1,
t2.text AS text2,
t3.text AS text3
FROM t1
LEFT JOIN t2 USING(ID)
LEFT JOIN t3 USING(ID);
Получим:
Код:
+----+-------+-------+-------+
| ID | text1 | text2 | text3 |
+----+-------+-------+-------+
| 1 | text1 | text2 | NULL |
| 2 | text1 | NULL | text3 |
+----+-------+-------+-------+
Социальные закладки