Re: Struggling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--- Erik Meyer <emeyer@xxxxxxxxxxxx> wrote:
> Hope someone can help me.
> 
> I have two tables:
> 
> evt_details
> evt_sponsors
> 
> The structure is as follows:
> 
> evt_details							evt_sponsors
> 
> evt_detail_id     	(INT)(PK)			evt_sponsor_id (INT)(PK)
> evt_detail_title		(CHAR)			evt_sponsor_name (CHAR)
> evt_sponsor_id1		(INT) NON-NULL
> evt_detail_date		(date)
> evt_sponsor_id2		(INT) NULL
> evt_sponsor_id3		(INT) NULL
> evt_sponsor_id4		(INT) NULL
> 
> Now, the event can have either 1 sponsor, 2 sponsors, 3 sponsors,
> or 4
> sponsors.
> 
> Is there a way where I can return a result whether it has 1, 2, 3,
> or 4
> since some of the events will  not have a 2d,3d, or 4th sponsor, a
> combination of 1 & 2, 1,2,3, or all 4 depending on the values in
> the table?

You _could_ normalize the data a bit more and use a lookup table with
a separate line for each event/sponsor combination.

The event table would have event details, the sponsor table would
have sponsor details, and the lookup table would simply be a cross
reference using the IDs. Something like this:

Evt_Sponsor:
event_id   sponsor_id
    1           1
    1           2
    1           3
    1           4
    2           1
    2           2
    2           3
    3           3
    3           4
    4           2

This shows four events: one with 4 sponsors, one with 3, one with 2,
and one with 1. Then you can use the lookup table to query on the
events/sponsor combiantions that exist.

> 
> Here is the query I have:
> 
> SELECT e.evt_detail_title, a.evt_sponsor_name, b.evt_sponsor_name,
> c.evt_sponsor_name,
>        d.evt_sponsor_name
> FROM evt_sponsors a, evt_sponsors b, evt_sponsors c, evt_sponsors
> d,
> evt_details e
> WHERE e.evt_detail_date <= DATE_SUB(NOW(), INTERVAL 1 DAY) AND
> e.evt_sponsor_id1=a.evt_sponsor_id AND
>       (e.evt_sponsor_id2=b.evt_sponsor_id OR e.evt_sponsor_id2=0)
> AND
> (e.evt_sponsor_id3
>        =c.evt_sponsor_id OR e.evt_sponsor_id3=0) AND
> (e.evt_sponsor_id4=d.evt_sponsor_id OR e.evt_sponsor_id4 =0)
> 
> 
> Thanks for the help,
> Erik W. Meyer
> 
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 


=====
Mark Weinstock
mark_weinstock@xxxxxxxxx
***************************************
You can't demand something as a "right" unless you are willing to fight to death to defend everyone else's right to the same thing.
***************************************


	
		
__________________________________
Do you Yahoo!?
Win a $20,000 Career Makeover at Yahoo! HotJobs  
http://hotjobs.sweepstakes.yahoo.com/careermakeover 

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux