MySQL多表问题?

时间:2010-10-02 11:49:59

标签: mysql

我希望能够检查email是否等于$e,但我的电子邮件位于另一个名为info的表中,我该如何解决此问题?

到目前为止,这是我的MySQL查询。

"SELECT password, salt FROM users WHERE (email = '" . $e . "' OR username = '" . $e . "') AND active IS NULL"

1 个答案:

答案 0 :(得分:0)

使用JOIN:

SELECT users.password, users.salt
FROM users
JOIN info
ON info.id = users.info_id
WHERE (users.email = $e OR info.username = $e)
AND users.active IS NULL

注意:您可能需要修改以ON开头的行,具体取决于您的架构结构。如果您不确定要做出哪些修改,请更新您的问题以包含SHOW CREATE TABLE usersSHOW CREATE TABLE info的输出。

此外,您可能需要仔细检查代码中是否存在SQL注入漏洞。最好使用参数,或者至少确保字符串正确escaped。如果您正确转义,则从您的代码提取中不清楚。