один и тот же запрос несколько таблиц MySQL - PullRequest
0 голосов
/ 25 августа 2011

У меня есть 2 таблицы в базе данных mysql

T1 : registration
T2 : multiple_email

, и у меня есть поле email_id в обеих таблицах.Я хочу выполнить запрос, чтобы увидеть, является ли письмо действительным.Таким образом, я могу выполнить 2 запроса как

select count(*) from registration where emailid = $emailid
select count(*) from multiple_email where emailid = $emailid 

, и если один из счетчиков больше 0, я считаю его действительным электронным письмом.

Существует ли элегантный способ сделать этов одном запросе?

Ответы [ 2 ]

2 голосов
/ 25 августа 2011
select count(*) + 
(select count(*) from multiple_email where emailid = $emailid)
from registration where emailid = $emailid
0 голосов
/ 25 августа 2011

Я думаю, что лучше использовать 2 запроса с некоторыми изменениями:

select emailid from registration where emailid = $emailid ;
select emailid from multiple_email where emailid = $emailid 

Это будет быстрее, чем count (*), потому что вы будете читать только из индекса. Если emailid не является первичным ключом, вы можете добавить ограничение 1.

...