首页 > 解决方案 > mysql - 从 2 个不同的表中选择不同的行

问题描述

Table 1(pending_order)

关联

Table 2(user)

关联

询问:

SELECT DISTINCT * FROM user,pending_order WHERE user.id= pending_order.user_id

预期 o/p:只有 2 行,因为用户 1,2 有 2 个挂单。但是我将所有表格行与pending_order表格结合在一起user

标签: mysqlsql

解决方案


您的查询应该有效。但我会把它写成:

SELECT u.*, po.*
FROM user u JOIN
     pending_order po
     ON u.id = po.user_id;

这应该只返回有挂单的用户 2。

如果您只想要有挂单的用户,请使用 `exists:

select u.*
from user u
where exists (select 1
              from pending_order po
              where u.id = po.user_id
             );

推荐阅读