Php 我可以在两个表中搜索用户名吗?

Php 我可以在两个表中搜索用户名吗?,php,sql,Php,Sql,我使用以下查询在“雇主”表中查找用户: $username = mysql_real_escape_string($username); $query = "SELECT password, salt FROM Employer WHERE Employer_Name = '$username';"; 我有第二个名为Clients(带有密码和salt字段以及username字段)的表,是否可以在两个表中搜索单个用户名 (如果需要更多信息,请告诉我)您当然可以查看

我使用以下查询在“雇主”表中查找用户:

$username = mysql_real_escape_string($username);
$query = "SELECT password, salt
        FROM Employer
        WHERE Employer_Name = '$username';";
我有第二个名为
Clients
(带有密码和salt字段以及
username
字段)的表,是否可以在两个表中搜索单个用户名


(如果需要更多信息,请告诉我)

您当然可以查看加入查询


您当然可以查看连接查询


我相信您要求返回一个结果,其中客户端中的用户名也是雇主中的雇主名称。如果是这样,您可以这样进行连接。如果您需要来自Clients表的一些信息,可以将其添加到查询的select部分

SELECT E.password, E.salt
FROM Employer E JOIN Clients C ON (E.Employer_Name = C.Username)
WHERE E.Employer_Name = '$username';

我相信您要求返回一个结果,其中客户端中的用户名也是雇主中的雇主名称。如果是这样,您可以这样进行连接。如果您需要来自Clients表的一些信息,可以将其添加到查询的select部分

SELECT E.password, E.salt
FROM Employer E JOIN Clients C ON (E.Employer_Name = C.Username)
WHERE E.Employer_Name = '$username';

我想你需要的是:


我想你需要的是:


你应该在这里使用工会

SELECT password, salt FROM Employer WHERE Employer_Name = '$username';
UNION
SELECT password, salt FROM Clients WHERE Client_Name = '$username';"

这将返回两个表中与其where子句匹配的所有值的一个记录集。

您应该在此处使用UNION

SELECT password, salt FROM Employer WHERE Employer_Name = '$username';
UNION
SELECT password, salt FROM Clients WHERE Client_Name = '$username';"

这将返回两个表中与其where子句匹配的所有值的一个记录集。

如果您想知道要搜索的用户属于哪个表,可以尝试以下操作:

$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';
}

如果您想知道正在搜索的用户属于哪个表,可以尝试以下操作:

$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';
}

你能在网站上举个例子吗。这样,如果链接消失,信息仍将在这里。谢谢谢谢,我将查看连接。他要求在两个表中搜索一个用户名,所以我的假设是,除非他想进行两个单独的查询,否则他将需要一个连接。出于好奇,你有什么建议@JohnieKarr?我想他可能正在寻找一个联盟?我把这个问题理解为“我有两个表,雇主和客户。用户名在这两个表中的一个表中。”如果这个问题是凯文·克劳威尔(Kevin Crowell)所说的,那么你是正确的,JOIN就是所需要的。这很公平,我只是想知道替代方案是什么。我以前没有研究过使用工会,所以谢谢。你能在网站上举个例子吗。这样,如果链接消失,信息仍将在这里。谢谢谢谢,我将查看连接。他要求在两个表中搜索一个用户名,所以我的假设是,除非他想进行两个单独的查询,否则他将需要一个连接。出于好奇,你有什么建议@JohnieKarr?我想他可能正在寻找一个联盟?我把这个问题理解为“我有两个表,雇主和客户。用户名在这两个表中的一个表中。”如果这个问题是凯文·克劳威尔(Kevin Crowell)所说的,那么你是正确的,JOIN就是所需要的。这很公平,我只是想知道替代方案是什么。我以前没有考虑过使用工会,所以谢谢。lol比我强,Ben+1.考虑用头脑来区分实体是客户还是雇主。哈哈,比我聪明多了,本+1.考虑一个负责人来区分实体是客户还是雇主。