powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка из двух таблиц
8 сообщений из 8, страница 1 из 1
выборка из двух таблиц
    #33370764
_novice_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые!

Имеются две таблицы:
table1 |id_table1|id1|id2
table2 |id_table2|name

id1, id2 - индексы в таблице table2

Можно ли получить выборку вида: |id_table1|name1|name2| по id_table1?
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33370890
phpsustem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да можно обьеденяй две таблици в запросе и сможеш получить любые поля с этих таблиц
Как сделать на вскику приходит мысль иди на mysql.ru и читай доки.
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33373052
_novice_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда я делаю выборку через такой запрос:

Код: plaintext
SELECT *  FROM table1 LEFT JOIN table2 ON (table2.id_table2 = table1.id1)

то получаю:

|id_table1|name1|id2|

Так вообщем-то и должно быть, потому как я не указал условие для отбора id2, но ведь нельзя в запросе указывать что-то типа:

Код: plaintext
SELECT *  FROM table1 LEFT JOIN table2 ON (table2.id_table2 = table1.id1) AND (table2.id_table2 = table1.id2)

ибо получится противоречие в условии: (table2.id_table2 = table1.id1) AND (table2.id_table2 = table1.id2) и результат будет почти всегда нулевым...

Вопрос: как правильно составить запрос, чтобы иметь выборку для обоих индексов, т.е. получить |id_table1|name1|name2| ?
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33373183
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5 раз прочита и ничего не понял. Поэтому четко и понятно сформулируйте вопрос. Далее
авторКогда я делаю выборку через такой запрос:
SELECT * FROM table1 LEFT JOIN table2 ON (table2.id_table2 = table1.id1)
то получаю:
|id_table1|name1|id2|
Ложь, потому что вы объеденяете две таблицы, результатом такого объединения будет таблица, состаящая из всех столбцов объеденяемых таблиц, если, конечно же столбцы не указаны явно.
Т.е. должна была получится таблица с полями
id_table1, id1, id2, id_table2, name

авторМожно ли получить выборку вида: |id_table1|name1|name2| по id_table1?
Это не формулировка.
Вместо того, что бы рассуждать по поводу того, что можно и чего нельзя, лучше сформулируйте РЕАЛЬНУЮ задачу, потому как тяжело помочь созадть запрос, если не знаешь, по каким условиям должны объеденяьтся таблицы.


----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33373762
_novice_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 4m@t!c

Вы правы, я не верно сформулировал условие задачи.

Вообще планируется проведение турнира. Где записью в таблице games будет результат поединка между двумя его участниками:
id_white, id_black - индексы первого и второго участников в табл. players.
id_result - индекс результата поединка в табл. results

В базе есть следующие таблицы:

Таблица "games" - результаты поединков.
Код: plaintext
1.
2.
3.
4.
5.
-----------------------------------------------------------------------
	 id 		int( 11 )	 	 	Нет 	auto_increment
 	 id_white 	int( 11 )	 	 	Нет 	 0 
 	 id_black 	int( 11 )	 	 	Нет 	 0 
	 id_result	int( 11 )			Нет      0 

Таблица "players" - ники участников.
В силу специфики соревнования, нужно хранить два различных ника для каждого участника.
Код: plaintext
1.
2.
3.
4.
-----------------------------------------------------------------------
 	 id 		int( 11 )	                Нет     auto_increment
 	 nick1	 	varchar( 50 )	        Нет
 	 nick2          varchar( 50 )	        Нет

Таблица "results" - результаты поединков с комментариями.
Код: plaintext
1.
2.
3.
-----------------------------------------------------------------------
 	 id 		int( 11 )	 	 	Нет 	auto_increment
	 result	        varchar( 50 )		Нет

По ходу турнира необходимо выводить результаты поединков. Так вот вывод таблицы "games" в её обычном виде никакой информации не даст.
Хотелось бы, чтобы участники соревнования видели что-то типа этого:
Код: plaintext
1.
2.
3.
4.
5.
------------------------------------------------------------------
Номер поединка  Первый игрок	Второй игрок	Результат
------------------------------------------------------------------
	 1 	    Вася  	    Женя 	Победил Вася! Ура!
...

Как сделать такое можно ?
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33374391
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT *  FROM table1 t1
 INNER JOIN table2 t2 ON t2.id_table2 = t1.id1
 INNER JOIN table2 t3 ON t3.id_table2 = t1.id2
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33374444
_novice_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 maXmo
Большое спасибо! Это именно то, что нужно!
Т.е. я правильно понимаю, что t2 и t3 - это псевдонимы одной и той же таблицы, благодаря которым можно избежать явного сравнения ?
...
Рейтинг: 0 / 0
выборка из двух таблиц
    #33374451
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угу
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]