我很难找到我想要运行的查询的答案.我想要
SELECT * FROM users AND tempusers WHERE username='joe'
Run Code Online (Sandbox Code Playgroud)
两个表都有一个名为username的列.我一直受到SQL 1064语法错误的影响,这对我没有多大帮助.
数据库结构:
数据库名称:mydb
表:用户 列:id,用户名,电子邮件,密码.
表:tempusers 列:id,用户名,电子邮件,密码,激活码.
你得到的错误是因为你不能选择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对一个整数列).