检查新用户名是否在两个单独的表中

时间:2012-02-08 20:35:41

标签: mysql database select

我想确保我的系统中已存在某个用户。我有两张桌子:

  • 一个与确认用户(xymply_users)
  • 一个未经确认的用户(xymply_newusers)。

我想检查一下现在已经注册的人选择了一个表中没有的用户名。我试过这个:

SELECT * FROM xymply_users, xymply_newusers 
WHERE xymply_users.user ='test' 
OR xymply_newusers.user ='test'

但如果在xymply_users中有用户“测试”,则不会显示此查询,为什么我不知道?

2 个答案:

答案 0 :(得分:3)

使用UNION

(SELECT 1 FROM xymply_users WHERE xymply_users.user ='test')
UNION
(SELECT 1 FROM  xymply_newusers WHERE xymply_newusers.user ='test')

如果用户存在则会给出1条记录,如果两条记录都存在则会有2条记录,如果用户不存在则不会有记录。

SELECT 1只是一种优化;它比SELECT *快(SELECT *通常总是错误的)

答案 1 :(得分:1)

SELECT * FROM xymply_users.u, xymply_newusers.nu where u.username = nu.username

SELECT * FROM xymply_users.u, xymply_newusers.nu where u.username = 'username' AND nu.username = 'username' AND u.username = nu.username