我对此有一段时间。我有3个用户表。他们在不同的表中,因为他们有不同的列,这取决于他们的用户类型。搜索具有不同列的3个不同表格中的用户
现在登录到该网站我试图选择用户的电子邮件和与他对应的所有其他值。根据其他用户在这里的一些反馈,我写了我这样的查询:
$query = "SELECT id, position_id, first_name, last_name, email ";
$query .= "FROM pims ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1 ";
$query .= "UNION ALL SELECT id, district_id, position_id, first_name, last_name, email ";
$query .= "FROM dms ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1 ";
$query .= "UNION ALL SELECT * ";
$query .= "FROM users ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1";
但我得到一个“数据库查询失败”消息。查询工作正常,当我只有一个SELECT
声明,所以我知道这是这个查询不起作用。任何想法如何解决它?
做所有查询的联合都应该有相同数量的列。 – majidarif
这种情况下的替代方法是什么? – Mike
添加了我的答案。 – majidarif