таблица view (Представление) возможно ли получить несколько разных данных из 1 таблицы

Yuranikspb
Дата: 06.01.2013 14:39:41
таблица peoples
id
name

таблица films_peoples
id_film
id_peoples
type ENUM ('продюсер','актер')

таблица films
id
title

содержимое таблиц peoples
1| шварцнегер
2| Николсон
содержимое таблицы films_peoples
1|1|актер
1|2|продюсер
содержимое таблицы films
1|Сияние


как получить view table такого вида

film_id 1
film_title:Сияние
актеры:Шварцнегер ( соответсвенно может быть несколько)
продюсеры:Николсон ( соответсвенно тоже может быть несколько)
miksoft
Дата: 06.01.2013 14:47:35
Так же как и в обычном SELECT-е -используйте одну таблицу два раза с алиасами.
Yuranikspb
Дата: 06.01.2013 15:23:00
Можно пример конкретный
в обычно SELECT я бы применил left join хотя ... как применить left join если нужно из films_peoples достать данные с разным типом актер или продюсер
qwerty112
Дата: 06.01.2013 15:41:21
Yuranikspb
как получить view table такого вида

film_id 1
film_title:Сияние
актеры:Шварцнегер ( соответсвенно может быть несколько)
продюсеры:Николсон ( соответсвенно тоже может быть несколько)

это (выделил) что обозначает ?
все актёры / продюсеры - в одним "значением", через запятую, например (1)

или (2)
film_idfilm_titleактерыпродюсеры
1СияниеШварцнегерНиколсон
1СияниеСталоне
1Сияниеzzzzzz

?
Yuranikspb
Дата: 06.01.2013 16:08:10
ваш вариант таблицы наверно более правильный так проще будет ведь потребуется ещё id скажем актера + скажем ещё какие-то его данные
qwerty112
Дата: 06.01.2013 16:28:47
Yuranikspb
ваш вариант таблицы наверно более правильный так проще будет ведь потребуется ещё id скажем актера + скажем ещё какие-то его данные

даа, не было у меня "вариантов" ... у меня вопрос был ...

зы
я их пронумеровал, что бы вам проще "отвечалось"
Yuranikspb
Дата: 06.01.2013 16:45:59
номер 2 интересует
qwerty112
Дата: 06.01.2013 17:04:46
Yuranikspb
номер 2 интересует

select a.id_film, 
	max(case when a.type=1 then a.id_peoples end) as актеры,
	max(case when a.type=2 then a.id_peoples end) as продюсеры
from

(select fp1.id_film, fp1.id_peoples, fp1.type,
	(select count(*) from films_peoples fp2 where fp2.type=fp1.type and fp2.id_film=fp1.id_film and fp2.id_peoples<=fp1.id_peoples) as num
from films_peoples fp1)a

group by a.id_film, a.num

и потом доджойниваеш таблицы films и peoples (последнюю - 2-ажды)