2013-05-05 45 views
0

取一个字段值我有一个表“USERS”:单个SQL查询到两个输入值

name | passwd | email 

有没有办法做到在一个查询以下...

SELECT name FROM USERS WHERE email='input_email_1'; 
SELECT name FROM USERS WHERE email='input_email_2'; 

我的意思是,如果我有两个email_addresses,如何在单个查询中为两个email_addresses从USERS表中获取“名称”。

在此先感谢..

+0

除了当前'或'和'in'的答案,还有'union'的使用,但它并不常见最好的方式,所以我只是在评论中提到它。 – paxdiablo 2013-05-05 04:02:06

回答

4

可以使用IN

SELECT * FROM Users WHERE email IN ('email1', 'email2', 'more list....') 
+1

+1等价于OR,但无论如何+1);!不太确定我喜欢SELECT *虽然... – 2013-05-05 04:00:12

+0

感谢您的快速回复......但我认为,我不清楚我的问题......让我告诉你确切的情况......我正在做一项任务,其中我得到2个电子邮件地址为“发件人”,第二个为“接收者”......我必须分别从发件人和收件人处获得“姓名”......这将是... SELECT senderName(用于发件人电子邮件),receiverName(用于接收电子邮件)FROM USERS .... – Sonu 2013-05-05 04:12:41

+0

为什么不在应用程序级别做一个条件?无论如何,这个怎么样? 'SELECT MAX(CASE当email ='email1'THEN name END)SenderName, \t \t MAX(CASE WHEN email ='email2'THEN name END)ReceiverName FROM Users WHERE email IN('email1','email2') ' – 2013-05-05 04:19:45

2
SELECT name FROM USERS WHERE email='input_email_1' OR email='input_email_2'; 
+0

感谢快速回复...但是我想,我是不是清楚我的问题......让我告诉你确切的情况......我做在我一个任务得到2个电子邮件地址为“发件人”,第二个为“接收者”......我必须从发件人和收件人分别获取“姓名”.... – Sonu 2013-05-05 04:04:38

0

我可能是完全错误的,但它看起来像(从评论)你正在寻找这样的事情

SELECT u1.name sender_name, 
     u2.name receiver_name 
    FROM messages m JOIN 
     users u1 ON m.sender = u1.email JOIN 
     users u2 ON m.receiver = u2.email