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

Форум MySQL

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

 

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

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

тема: Два в LEFT JOIN
 
 автор: Sergeous   (21.06.2007 в 15:54)   письмо автору
 
 

$query ="SELECT * FROM `matchs` LEFT JOIN `teams` on `matchs`.`id_team1`=`teams`.`id_team` where id_pm=$id";

Что делать если в таблице matchs два поля соотвествуют `teams`.`id_team` , т.е. есть team1 и team2, как построить запрос?

   
 
 автор: Sergeous   (09.08.2007 в 15:31)   письмо автору
 
   для: Sergeous   (21.06.2007 в 15:54)
 

Ну что, у кого нибудь найдется ответ на мой вопрос?)

   
 
 автор: Faraon   (09.08.2007 в 15:37)   письмо автору
 
   для: Sergeous   (09.08.2007 в 15:31)
 

А что Вы вообще хотите сделать?
И структуры таблиц

   
 
 автор: Sergeous   (09.08.2007 в 16:00)   письмо автору
 
   для: Faraon   (09.08.2007 в 15:37)
 

Есть две таблицы.
Первая - команды (id_teams, name)
Вторая - матчи (teams1, teams2, goal1, goal2)


teams1 и teams2 соответствуют id_teams из первой таблицы.


Нужно сделать вывод матчей, вместо teams1 и teams2 подставляется name из первой таблицы.

   
 
 автор: Trianon   (09.08.2007 в 16:01)   письмо автору
 
   для: Sergeous   (21.06.2007 в 15:54)
 

Следует использовать псевдонимы таблиц и полей
к примеру, если нужно выбрать поля name двух копий таблиц teams

$query ="SELECT 
   `matchs`.*, 
    t1.name AS name1, 
    t2.name AS name2
  FROM `matchs`
     LEFT JOIN `teams` AS t1 on `matchs`.`id_team1`=t1.`id_team`
     LEFT JOIN `teams` AS t2 on `matchs`.`id_team2`=t2.`id_team`
    where id_pm=$id";

   
 
 автор: Faraon   (09.08.2007 в 17:03)   письмо автору
 
   для: Trianon   (09.08.2007 в 16:01)
 

А смысл два LEFT JOIN делать если автор говорит что teams1 и teams2 равны id_items
и соответственно получается равны между собой

   
 
 автор: Trianon   (09.08.2007 в 19:23)   письмо автору
 
   для: Faraon   (09.08.2007 в 17:03)
 

как это равны?
две команды играют одну матч.
Номера команд по Вашему одинаковы?

Конечно, они соответствуют id_team. Каждая. но в разные копии одной таблицы.

ключа id_items я вообще не нашел.

   
 
 автор: Faraon   (10.08.2007 в 08:46)   письмо автору
 
   для: Trianon   (09.08.2007 в 19:23)
 

id_items это я перепутал с id_teams
Но дело не в этом. Все равно же получается что name1 и name2 будут иметь одно и тоже название из Вашего запроса
P.S. id_team, id_team1, id_team2 этих ключей я тоже не нашел.

   
 
 автор: Trianon   (10.08.2007 в 09:32)   письмо автору
 
   для: Faraon   (10.08.2007 в 08:46)
 

>id_items это я перепутал с id_teams
>Но дело не в этом. Все равно же получается что name1 и name2 будут иметь одно и тоже название из Вашего запроса

Ничего подобного.
Cтолбик с именем первой из команд будет иметь название name1 ,
столбик с именем второй - name2.

И значения у них тоже будут разные. Маловероятно что в таблице окажется запись, указывающая, что очередную игру команда играла сама с собой.


>P.S. id_team, id_team1, id_team2 этих ключей я тоже не нашел.

Смотрите самый первый пост.

   
 
 автор: Faraon   (10.08.2007 в 09:47)   письмо автору
 
   для: Trianon   (10.08.2007 в 09:32)
 

>Смотрите самый первый пост.
Да-а, что-то у автора с каждым постом меняются названия полей.
Я так понимаю в таблице teams, id_team не уникальный.
Если так то тогда в принципе все верно

   
 
 автор: Sergeous   (12.08.2007 в 01:59)   письмо автору
 
   для: Faraon   (10.08.2007 в 09:47)
 

Все работает, название команд не одинаковы, ибо в teams1 и teams2 разные значения. А имена тут разные по сравнения с первым постом, потому что он написан давненько).
id_teams кстати уникальный.

   
 
 автор: Trianon   (09.08.2007 в 16:48)   письмо автору
 
   для: Sergeous   (21.06.2007 в 15:54)
 

.

   
Rambler's Top100
вверх

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