|
MySQL.RU - Webboard
Вернуться
Взаимодействие двух таблиц (Костя) 29/06/2006 - 09:00:27
Re: Взаимодействие двух таблиц (Dinky) 29/06/2006 - 19:52:32
> Original message text:
> From: Костя - 29/06/2006 - 09:00:27
> Subject:Взаимодействие двух таблиц
> -----------------
> У нас есть таблица, в которой хранится описание песни, среди прочих параметров описания, в ней должны присутствовать описание музыкантов. Есть еще таблица, в которой присутствует только описание музыкантов.
> Периодически возникает необходимость вывести песни, в которых играл данный музыкант, как это сделать с наименьшей нагрузкой на сервер.
>
> Я пытался сделать следующем образом.:
> Создал третью таблицу (музыканты_и_песни), в которой хранились пары – название песни и имя музыканта (точнее их индексы).
> И запрос на вывод песен, в которых принимал участие какой-то музыкант.
> Запрос: SELECT `название_песни`, `индекс_песни` FROM `музыка` WHERE (select count(if(`песня`=` индекс_песни ` AND `музыкант`='15', 1, NULL)) from `музыканты_и_песни`)>0
> То есть, выбрать только те песни, которые в таблице музыканты_и_песни имеют пару индекс своей песни и индекс музыканта (например 15)
>
>
From: Dinky - 29/06/2006 - 19:52:32
Subject:Взаимодействие двух таблиц
-----------------
> сделать с наименьшей нагрузкой на сервер
:))
Если не любите простые джоины, то хотя бы воспользуйтесь WHERE EXISTS по принципу:
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE table1.id=table2.id AND table2.value=$value)
--
Dmitry
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
29014
|
|