|
|
|
| Здравствуйте друзья.
Объясните, пожалуйста принцип построения запросов к нескольким таблицам
например у меня 2 таблицы user и msg
user:
---------------------
| id | name | email
---------------------
| 1 | name1| .ru
| 2 | name2| .com
| ... | ... | ...
msg:
---------------------
| id | id_user | message
---------------------
| 1 | 1 | text
| 2 | 2 | text2
| 3 | 1 | text3
| ... | ... | ...
|
В итоге нужно получить выборку, чтобы вывести циклом следующее:
text / name1 / .ru
text2/ name2 / .com
text3/ name1 / .ru
... / ... | |
|
|
|
|
|
|
|
для: Agronom
(04.04.2006 в 18:38)
| | Строится внутреннее соединение таблиц на условии msg.id_user = user.id
SELECT message, name, email
FROM msg JOIN user ON msg.id_user = user.id
|
Можно написать и по-старому
SELECT message, name, email
FROM msg, user
WHERE msg.id_user = user.id
|
Но, на мой взгляд, так правильней.
Если имя столбика одинаковое у двух таблиц - его нужно уточнять именем таблицы, а для помещения в результирующий набор, еще и наделять алиасом. Например:
SELECT msg.id as msg_id, message, name, email
FROM msg JOIN user ON msg.id_user = user.id
|
| |
|
|
|