tags:

views:

20

answers:

1

This is the master table structure

CREATE TABLE IF NOT EXISTS `gf_film` (

  `film_id` bigint(20) NOT NULL AUTO_INCREMENT,

  `user_id` int(20) NOT NULL,

  `film_name` varchar(100) DEFAULT NULL,

  `film_cat` varchar(30) CHARACTER SET latin1 DEFAULT NULL,

  `film_plot` longtext,

  `film_release_date` date DEFAULT NULL,

  `film_post_date` date DEFAULT NULL,

  `film_type` enum('Movie','Tv') CHARACTER SET latin1 DEFAULT 'Movie',

  `film_feature` enum('Y','N') CHARACTER SET latin1 NOT NULL DEFAULT 'N',

  `film_status` enum('ACTIVE','INACTIVE') CHARACTER SET latin1 NOT NULL DEFAULT 'ACTIVE',

  `film_modify` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

  `film_link_value` varchar(200) NOT NULL,

  `film_post_link` varchar(255) NOT NULL,

  PRIMARY KEY (`film_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21435 ;

This the child table through which i map between the above gf_film table and lowest gf_actor table

CREATE TABLE IF NOT EXISTS `gf_film_actor` (

  `film_id` int(20) NOT NULL,

  `actor_id` int(20) NOT NULL,

  KEY `film_id` (`film_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

This another table from which i have to reitrieve the actor name

CREATE TABLE IF NOT EXISTS `gf_actor` (

  `actor_id` bigint(20) NOT NULL AUTO_INCREMENT,

  `actor_name` varchar(100) DEFAULT NULL,

  `actor_desc` longtext CHARACTER SET latin1,

  PRIMARY KEY (`actor_id`),

  UNIQUE KEY `actor_name` (`actor_name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=60963 ;

And this the schema for gf_film_poster

CREATE TABLE IF NOT EXISTS `gf_film_poster` (

  `film_id` int(20) NOT NULL,

  `website_poster_url` varchar(255) DEFAULT NULL,

  `original_poster_url` varchar(255) DEFAULT NULL,

  `default_poster_url` varchar(255) DEFAULT 'noposter.gif',

  UNIQUE KEY `film_id` (`film_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

After execute this query

SELECT gf_film.film_id                                 ,
       film_name                                       ,
       DATE_FORMAT(film_release_date,'%d') AS DATE     ,
       DATE_FORMAT(film_release_date,'%m') AS month_ori,
       DATE_FORMAT(film_release_date,'%M') AS MONTH    ,
       DATE_FORMAT(film_release_date,'%Y') AS YEAR     ,
       film_release_date                               ,
       film_feature                                    ,
       film_modify                                     ,
       film_post_link                                  ,
       website_poster_url
FROM   gf_film
       LEFT JOIN gf_film_poster
       ON     gf_film.film_id=gf_film_poster.film_id

i am getting these results from database

film_id,film_name,date,month_ori,month,year,film_release_date,
 film_feature,film_modify,film_post_link,website_poster_url

So i need the another column which contain the actors name and actor_id in one row related to each movies by joing the above query with gf_actor and gf_film_actor

+1  A: 
SELECT   gf_film.film_id                                 ,
         film_name                                       ,
         DATE_FORMAT(film_release_date,'%d') AS DATE     ,
         DATE_FORMAT(film_release_date,'%m') AS month_ori,
         DATE_FORMAT(film_release_date,'%M') AS MONTH    ,
         DATE_FORMAT(film_release_date,'%Y') AS YEAR     ,
         film_release_date                               ,
         film_feature                                    ,
         film_modify                                     ,
         film_post_link                                  ,
         website_poster_url                              ,
         group_concat(gf_actor.actor_name) AS actors
FROM     gf_film
         LEFT JOIN gf_film_poster
         ON       gf_film.film_id=gf_film_poster.film_id
         LEFT JOIN gf_film_actor
         ON       gf_film_actor.film_id = gf_film.film_id
         LEFT JOIN gf_actor
         ON       gf_film_actor.actor_id = gf_actor.actor_id
GROUP BY gf_film.film_id
Martin Smith
Thanx this query gives me perfect result what i need.
pravat231
You add the group_concat with my query so could you tell me my query is properly optimized or not.
pravat231