繁体   English   中英

如果 Select 值存在于另一个表中

[英]Select value in table if it exists in another

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

我有 2 个这样的表:

表:用户。

   USERNAME COMPANY EMAIL PHONE

表:调度员。

   USERNAME DISPATCH_CLIENT

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

我还需要获取 Users 表中的所有行,其中 Dispatch 表中的 USERNAME 和 DISPATCH_CLIENT 字段与 Users 表中的 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 . "'"

尝试这个

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM