[thelist] MYSQL Select from Table(s)

Sean German sgerman at sprockets.com
Fri Apr 20 07:51:11 CDT 2001


Howdy,

Depending on your rdbms, I wouldn't expect that to work since the system
doesn't know if you're refereeing to tblAds.Email, tblDockets.Email, or
tblReward.Email.    I would try UNION, i.e.

SELECT State from tblAds WHERE Email ='$email'
UNION
SELECT State from tblDockets WHERE Email ='$email'
UNION
SELECT State from tblReward WHERE Email ='$email'

That should return a single field 'State' with your unique hits.  (I think
UNION ALL will include dupes.)


You could get around doing the three SELECTs with something like,

SELECT tblAds.State as adsState, tblDockets.State as docketsState,
tblReward.State as rewardState
FROM tblAds, tblReward, tblDockets
WHERE tblAds.Email ='$email' OR tblDockets.Email ='$email' OR
tblReward.Email ='$email'

Which is logically very similar except it returns 3 fields (adsState,
docketsState, rewardState).  Which may be what you're looking for.  With the
UNION statement, you wouldn't know from which table the hit came.


HTH (my sql is a little rusty)


Sean G.




> <snip>
> my $db = &dbconnect;
> my $dbh=$db->prepare(
> qq|
>   SELECT
>     tblAds.State AS adsState,
>     tblDockets.State AS docketsState,
>     tblReward.State AS rewardState
>  FROM tblAds,tblReward,tblDockets
>  WHERE Email ='$email'
> |);
> $dbh->execute();
> ($docstate) = $dbh->fetchrow_array();
> </snip>
>
>
> depending upon the overall purpose, you may wish ti use some LEFT
> JOINS or GROUP BYs to organize things...
>
>
> Darrell
>
>





More information about the thelist mailing list