我如何从 table 中的两个查询中获取公共值并将其与 MySql 中的另一个 table 连接?

How I get common values from two query in a table and join it with another table in MySql?

我有两个 table。一个是 订单 ,另一个是 用户 。我想要 运行 关于 orders table 的两个不同查询,并希望获得共同的值并将其与 users table.

    命令
    ======
    +----+--------+------------+------------+-------- ------+
    |编号 | user_id | receive_id | arrival_id | departure_id |
    +----+--------+------------+------------+-------- ------+
    | 1 | 1 | 1 |空 | 5 |
    +----+--------+------------+------------+-------- ------+
    | 2 | 2 | 1 | 3 | 6 |
    +----+--------+------------+------------+-------- ------+
    | 3 | 3 | 1 |空 | 7 |
    +----+--------+------------+------------+-------- ------+
    | 4 | 1 | 3 | 5 |空 |
    +----+--------+------------+------------+-------- ------+
    | 5 | 3 | 3 | 6 |空 |
    +----+--------+------------+------------+-------- ------+
    | 6 | 4 | 3 | 7 |空 |
    +----+--------+------------+------------+-------- ------+
    | 7 | 1 | 4 | 7 | 9 |
    +----+--------+------------+------------+-------- ------+
    用户
    =====
    +----+----------+
    |编号 |姓名 |
    +----+----------+
    | 1 |肖恩 |
    +----+----------+
    | 2 |拉布 |
    +----+----------+
    | 3 |阿莎 |
    +----+----------+

第一次查询..

SELECT DISTINCT user_id from orders where receive_id = 1 and departure_id != 'null'
它的结果将是..
1 2 3

第二次查询..

SELECT DISTINCT user_id from orders where receive_id = 3 and arrival_id != 'null'
它的结果将是..
1 3 4

我想从这些查询中获取通用值

那是 ..
1 3

当我将它加入用户 table 时,结果将是
_id__name__arrival_id__departure_id
 1 Shaon 无效 5
 3 阿莎无效 7
但是现在想看。。
_id__name__arrival_id__departure_id
 1 邵 5 5
 3 阿莎 6 7
在 arrival_id 行上的值来自哪里
receive_id = 3 arrival_id 与 user_id 不同

我认为代码会像下面这样。但它不起作用。
SELECT DISTINCT user_id from orders where receive_id = 1 and departure_id != 'null'
COMMON
SELECT DISTINCT user_id from orders where receive_id = 3 and arrival_id != 'null'
JOIN users on (users.id = orders.user_id)
SELECT DISTINCT user_id from orders JOIN 
users on (users.id = orders.user_id) where receive_id = 3 and 
arrival_id != 'null' AND user_id IN (SELECT DISTINCT user_id from 
orders   where receive_id = 1 and departure_id != 'null');

您可以使用此查询来获取记录

试试这个查询,

select orders.id, users.id from orders inner join users 
on orders.user_id = users.id

通过将一个查询作为另一个查询的子查询,您将获得所需的内容。
像这样,

SELECT DISTINCT user_id from orders
JOIN users on (users.id = orders.user_id)
where receive_id = 1 and departure_id != 'null'
and user_id in (SELECT DISTINCT user_id from orders where receive_id = 3 and arrival_id != 'null')

希望对您有所帮助。