合并单个表上的多个select语句的结果

时间:2012-08-14 13:58:39

标签: mysql sql select join

我有两个选择语句

SELECT username, password FROM users WHERE username='$Uname'

SELECT email_address FROM users WHERE email_address='$email'

我可以使用什么声明,以便我立即得到所有结果,即

用户名为结果[0],密码为结果[1],email_address为结果[2]

更好地解释。

我想检查我的数据库中是否已有用户名记录,然后获取密码,然后检查密码是否还有email_address的记录,以确保不允许用户重复使用用户名或电子邮件地址。

4 个答案:

答案 0 :(得分:1)

我认为你想要一个“或”条件:

SELECT username, password, email_address 
FROM users
WHERE username='$Uname' or email_address='$email'

您可以使用相关子查询检查电子邮件是否存在:

SELECT username, password, email_address
       (select (case when count(*) > 0 then 'SHARED' else 'UNIQUE' end)
        from users u2
        where u.email_address = u2.email_address and
              u.username <> u2.user_name
      ) as SharedOrUnique
FROM users u
WHERE username='$Uname' or email_address='$email'

答案 1 :(得分:1)

  

联合查询结合了多个选择查询的结果。

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

答案 2 :(得分:0)

如果您已经知道电子邮件地址(第二个声明变量),那么为什么您希望您的声明再次返回?

答案 3 :(得分:0)

我不知道你要做什么,但......

SELECT u1.username, u1.password, u2.email_address 
from users u1, users u2
where u1.username='$UName'
and u2.email_address == '$email'

鉴于您的第二个查询将返回您传入的值....

SELECT username, password, '$email' as email_address FROM users WHERE username='$Uname'