[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Привязать значение из одной таблицы к двум полям
Betcoll
Добрый день.

Есть таблица 'discussions' с полями opponent1 и opponent2. Они имеют значения int и берутся из таблицы 'players' (id).

Мне надо выбрать запись из discussions, получив при этом name opponent1 и opponent2. Причём надо выбрать одну запись с определённым id_tournament, заодно получив name этого турнира (название хранится в таблице tournaments и привязывается к основной таблице по id.

Надеюсь, понятно объяснил :-)
Valick
Цитата (Betcoll @ 17.11.2019 - 15:01)
Надеюсь, понятно объяснил :-)
Betcoll
Есть три таблицы: discussoins, players и tournaments.

В первой таблице есть поля opponent1 и oppinent2, id_tournament.

Таблица players содержит id и name, такие же поля содержит и таблица tournaments.

Мне надо выбрать запись в discussions с определённым id_tournament и получить название турнира, а также имена играющих игроков.
kaww
http://www.mysql.ru/docs/man/JOIN.html
Betcoll
kaww

Я об этом операторе знаю, но не понимаю, как к двум полям взять значения из одной таблицы.
Valick
Betcoll, надо эту одну таблицу рассматривать как две разные таблицы, для этого есть алиасы. Более того, таблицу с помощью алиасов можно приджоинить саму к себе, с точки зрения SQL БД будет думать что у тебя две абсолютно одинаковых таблицы и ты их соединяешь.
Но честно говоря нет уверенности, что у тебя правильная архитектура БД, а разбираться некогда.

_____________
Стимулятор ~yoomoney - 41001303250491
kaww
Цитата (Betcoll @ 18.11.2019 - 12:22)
как к двум полям взять значения из одной таблицы.

Джоинить оду таблицу дважды. Только не забыть задать им разные алиасы. Пример:
SELECT d.*, p1.name AS opponent1_name, p2.name AS opponent2_name, t.name AS tournament_name
FROM discussoins AS d
LEFT JOIN players AS p1 ON d.opponent1 =p1.id
LEFT JOIN players AS p2 ON d.opponent2 =p2.id
LEFT JOIN tournaments AS t ON d.id_tournament = t.id
Betcoll
kaww

Мне казалось LEFT JOIN больше одного раза использовать нельзя unsure.gif
Valick
Цитата (Betcoll @ 18.11.2019 - 09:10)
Мне казалось LEFT JOIN больше одного раза использовать нельзя

Книжки надо читать, что б не казалось smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.