我想确保我的系统中已存在某个用户。我有两张桌子:
我想检查一下现在已经注册的人选择了一个表中没有的用户名。我试过这个:
SELECT * FROM xymply_users, xymply_newusers
WHERE xymply_users.user ='test'
OR xymply_newusers.user ='test'
但如果在xymply_users中有用户“测试”,则不会显示此查询,为什么我不知道?
答案 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