Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как связать таблицы 2 раза
 
 автор: larush   (08.09.2005 в 23:06)   письмо автору
 
 

имею
id_last_user , id_author, как построить запрос, чтобы вытащить через id этих полей 2 разных текстовых определения ?

select u.user ... from sp_user u ... where u.id_user = main.id_last_user
и второе поле
select u.user ... from sp_user u ... where u.id_user = main.id_author

можно сделать и 2 запроса, но как тогда синхронизировать перемещение по первому массиву с перемещением по второму ?

   
 
 автор: cheops   (09.09.2005 в 01:26)   письмо автору
 
   для: larush   (08.09.2005 в 23:06)
 

Чего-то не очень понятно, что требуется... а каковы структуры таблиц и что необходимо сделать?

   
 
 автор: larush   (09.09.2005 в 23:07)   письмо автору
 
   для: cheops   (09.09.2005 в 01:26)
 

ну вроде ясно написал...
есть общая таблица sp_user, в которой соответственно важных 2 поля
id_user (int), name_user (str)
1 Иванов
2 Петров
есть другая таблица, в которой учитывается автор и последний юзер, написавший послание
author_id (int) , lastuser_id (int), date_1, date_2
1 2 01/01/05 01/08/05
я хочу вывести на экран фамилии автора и юзера, ну и еще там кучу полей. Если бы был только один автор или юзер написал бы:
SELECT NAME_USER FROM table1, table2 WHERE ID_USER = AUTHOR_USER...
но дело то в том, что мне надо 2 раза вывести поле NAME_USER- для автора и юзера.
т.е. верхний пример должен выглядеть так:
Иванов Петров 01/01/05 01/08/05
Как это сделать ?

   
 
 автор: cheops   (10.09.2005 в 00:48)   письмо автору
 
   для: larush   (09.09.2005 в 23:07)
 

Тут нужно вводить псевдонимы для таблиц. Так как у вас два внешних ключа для таблицы sp_user, то она должна два раза участвовать в запросе под разными именами (так как под одним нельзя), для первого ключа и для второго
SELECT sp_user1.name_user, sp_user2.name_user, other.date_1, other.date_2
FROM sp_user AS sp_user1, sp_user AS sp_user2, other
WHERE other.id = 24 AND other.author_id = sp_user1.id_user AND other.lastuser_id = sp_user2.id_user

   
 
 автор: larush   (12.09.2005 в 12:34)   письмо автору
 
   для: cheops   (10.09.2005 в 00:48)
 

СПАСИБО !!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования