如果表中存在另一个值,请选择该值

时间:2019-10-21 01:05:20

标签: mysql

我正在尝试从发现特定公司名称的用户表中获取所有值。 我还需要获取用户表中的行,其中同一公司名称在另一个表中,并且与用户表中的名称匹配

我有2张这样的桌子:

表:用户。

   USERNAME COMPANY EMAIL PHONE

表:调度员。

   USERNAME DISPATCH_CLIENT

我需要获取“用户”表中所有具有特定公司名称的行

我还需要获取“用户”表中的所有行,其中“分配”表中的USERNAME和DISPATCH_CLIENT字段与“用户”表中的USERNAME AND COMPANY字段相匹配。

我已经在这里使用EXISTS查看了一些问题,但是它在我的情况下不起作用,或者我不够聪明,无法理解它。

这是我目前所拥有的。

SELECT * 
    FROM Users
    WHERE Users.COMPANY = '" . $company . "'
    AND EXISTS 
    (SELECT USERNAME
        FROM Dispatchers WHERE DISPATCH_CLIENT = '" . $company . "')";

也尝试过这种方式,但是没有记录返回:

SELECT 
        *
        FROM 
        Users
        INNER JOIN
        Dispatchers
        ON Dispatchers.USERNAME = Users.USERNAME
        AND Dispatchers.DISPATCH_CLIENT = Users.COMPANY
        WHERE 
        Users.COMPANY = '" . $company . "'"

2 个答案:

答案 0 :(得分:3)

尝试一下

SELECT * 
    FROM Users
    WHERE Users.COMPANY = '" . $company . "'
    OR Users.USERNAME IN
    (SELECT USERNAME
        FROM Dispatchers WHERE DISPATCH_CLIENT = '" . $company . "')";

答案 1 :(得分:0)

我认为您错过了“存在”阶段的加入条件。请尝试这个。

onclick