SQL查询从表1和表2中选择?

Jas*_*nNZ 1 mysql sql

我很难找到我想要运行的查询的答案.我想要

SELECT * FROM users AND tempusers WHERE username='joe'
Run Code Online (Sandbox Code Playgroud)

两个表都有一个名为username的列.我一直受到SQL 1064语法错误的影响,这对我没有多大帮助.

数据库结构:

数据库名称:mydb

:用户 :id,用户名,电子邮件,密码.

:tempusers :id,用户名,电子邮件,密码,激活码.

Ken*_*ite 6

你得到的错误是因为你不能选择table1 AND table2; 这通常不是有效的SQL语法.(我说"通常",因为MySQL有一些大多数其他数据库不使用的专有语法.)

它似乎JOIN不起作用,因为你没有描述表之间的那种关系.

如果两个表具有完全相同的结构(列名和类型以及相同的列数),这应该有效:

SELECT * FROM users WHERE username = 'joe'
UNION ALL
SELECT * FROM tempusers WHERE username = 'joe'
Run Code Online (Sandbox Code Playgroud)

如果表没有完全相同的模式,则必须至少在第一个表中为列命名SELECT:

SELECT 
  username, id, username, email, password, '' as activationcode
FROM 
  users 
WHERE 
  username = 'joe'
UNION ALL
SELECT 
  username, id, username, email, password, activationcode
FROM 
  tempusers
WHERE 
  username = 'joe'
Run Code Online (Sandbox Code Playgroud)

您可能必须提供到位的空格''activationcode第一选择,或使用正确类型的值的activationcode列,如果它不是一个字符列(例如,0对一个整数列).