我正在使用以下查询在“雇主”表中查找用户:
$username = mysql_real_escape_string($username);
$query = "SELECT password, salt
FROM Employer
WHERE Employer_Name = '$username';";
我有第二个名为Clients
的表(带有密码和盐字段以及username
字段),是否可以在两个表中搜索单个用户名?
(如果需要更多信息,请告诉我们)
答案 0 :(得分:5)
我认为你需要的是UNION:
SELECT password, salt, 'employer' as user_type
FROM Employer
WHERE Employer_Name = '$username'
UNION
SELECT password, salt, 'client' as user_type
FROM Clients
WHERE Clients_Name = '$username'
答案 1 :(得分:1)
你应该在这里使用UNION。
SELECT password, salt FROM Employer WHERE Employer_Name = '$username';
UNION
SELECT password, salt FROM Clients WHERE Client_Name = '$username';"
这将返回两个表中与where子句匹配的所有值的一个记录集。
答案 2 :(得分:0)
您当然可以查看JOIN查询...
答案 3 :(得分:0)
我相信您要求返回一个结果,其中客户端中的用户名也是雇主中的雇主名称。如果是这样,你可以这样做一个连接。如果您需要Clients表中的某些信息,您只需将其添加到查询的选择部分即可。
SELECT E.password, E.salt
FROM Employer E JOIN Clients C ON (E.Employer_Name = C.Username)
WHERE E.Employer_Name = '$username';
答案 4 :(得分:0)
如果您想知道被搜索用户属于哪个表,您可以尝试:
$username = mysql_real_escape_string($username);
$query1 = "SELECT password, salt
FROM Employer
WHERE Employer_Name = '$username';";
$query=mysql_query($query1);
if(mysql_num_rows($query)>0)
$from = 'Employer';
else
{
$query2 = "SELECT password, salt
FROM Client
WHERE Client_Name = '$username';";
$query=mysql_query($query2);
if(mysql_num_rows($query)>0)
$from = 'Client';
else
$from='none';
}