mysql - 如果它存在于另一个表中,则选择表中的值
问题描述
我正在尝试从找到特定公司名称的用户表中获取所有值。我还需要获取用户表中的行,其中相同的公司名称在另一个表中并且与用户表中的名称匹配
我有 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 . "')";
推荐阅读
- yaml - 如何在 .ebextensions 中测试是否未安装软件包?
- javascript - tinymce - 图片/文件上传默认为图片
- react-native-gifted-chat - React Native 有天赋的聊天输入
- python - 由于 K8S SIGTERM,RabbitMQ 客户端在服务器中成为孤儿
- c++ - 如何调用比较器函数进行排序?
- ansible - 第二个 ansible 角色未在剧本中运行
- c++ - 这个回溯代码如何确保两个字符串没有共同的元素?
- c++ - 什么时候最好使用 rand() 与生成器 + 分布?(例如 mt19937 + uniform_real_distribution)
- python-3.x - 未知标签:%python_provide:错误:python3-ansible 无法识别
- php - Laravel 作业已尝试太多次或运行时间过长。该作业之前可能已超时