The two querys's logic are different.Which is you need?

----- Original Message ----- 
From: "afan pasalic" <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Wednesday, June 04, 2008 5:50 AM
Subject: what's better query?


> Hi,
> 
> I have two tables, "people" and "membership". Both have email column
> (different column names though).
> 
> CREATE TABLE `people` (
>  `person_id` int(8) unsigned NOT NULL,
>  `address_id` int(8) default NULL,
>  `first_name` varchar(45) NOT NULL,
>  `last_name` varchar(45) NOT NULL,
>  `email` varchar(50) default NULL,
>  PRIMARY KEY  (`person_id`),
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1
> 
> 
> CREATE TABLE `membership` (
>  `person_id` int(8) unsigned NOT NULL,
>  `organization_id` int(8) unsigned NOT NULL,
>  `email_address` varchar(45) default NULL,
>  `title` varchar(45) default NULL,
>  `department` varchar(45) default NULL,
>  `direct_phone` varchar(10) default NULL,
>  PRIMARY KEY  (`person_id`,`organization_id`),
>  KEY `index_email` (`email_address`),
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1
> 
> 
> I need to check if entered email address exists in either one of these
> two tables.
> I made these two queries. Which one is better one?
> 
> (
> SELECT p.person_id, p.email, p.first_name, p.last_name
> FROM people p
> WHERE email='".$email."'
> )
> UNION
> (
> SELECT m.person_id, m.email_address as email, p.first_name, p.last_name
> FROM membership m
> LEFT JOIN people p ON p.person_id=m.person_id
> WHERE m.email_address='".$email."'
> )
> 
> or:
> 
> SELECT p.person_id, p.email, p.first_name, p.last_name, m.email_address
> FROM people p, membership m
> WHERE (p.email='".$email."' OR m.email_address='".$email."')
> AND p.person_id=m.person_id
> 
> 
> 
> Thanks.
> 
> -afan
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
> 
>

Reply via email to