> -----Original Message-----
> From: Tom Crimmins
> Sent: Thursday, February 10, 2005 17:08
> To: livejavabean
> Cc: mysql@lists.mysql.com
> Subject: RE: 1 to many query 
> 
> 
> > -----Original Message-----
> > From: livejavabean
> > Sent: Thursday, February 10, 2005 16:47
> > To: mysql@lists.mysql.com
> > Subject: 1 to many query 
> > 
> > Hi there..
> > 
> >  
> > 
> > Hope you can give me some thoughts on this. let say we have 3 tables
> > 
> > 
> > 
> > table 1 (pk=project_id)
> > =======
> > - project_id 
> > - project_name 
> > 
> > table 2 (pk=project_id, project_state_flag)
> > =======
> > - project_id
> > - project_state_flag (fk to state_flag)
> > 
> > table 3 (pk=state_flag)
> > =======
> > - state_flag
> > - state_flag_name 
> > 
> > 
> > thank you.. but do u think it is possible to make the query return: 
> > 
> > - 1 row per project 
> > - each project state row's state become a column
> > e.g. 
> > 
> > project 1, name, state a, state b, state c... 
> > project 2, name, state a, state b, state c.
> > 
> > thanks in advance..
> 
> This looks like a many to many relationship to me. Each project is
> associated with multiple state_flags, and each state_flag can 
> be associated
> with multiple projects.
> 
> If you have mysql 4.1 or greater, you can use try the 
> following. It won't
> get you separate columns for each state_flag_name, but it 
> will give you a
> list of all the state_flag_names associated with each project 
> in a single
> column.
> 
> SELECT t1.project_id, t1.project_name, 
> GROUP_CONCAT(t3.state_flag_name) as
> state_flags FROM t1 INNER JOIN t2 ON (t1.project_id = 
> t2.project_id) INNER
> JOIN t3 ON (t2.project_state_flag = t3.state_flag) GROUP BY 
> t1.project_id

Sorry, also forgot to add that if you want projects returned that don't have
any state_flags associated with them you will need to make that first inner
join a left join.

> 
> > 
> > regards,
> > -ljb
> 
> ---
> Tom Crimmins
> Interface Specialist
> Pottawattamie County, Iowa
> 

---
Tom Crimmins
Interface Specialist
Pottawattamie County, Iowa

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to