Table 1(pending_order)
Table 2(user)
查询:
SELECT DISTINCT * FROM user,pending_order WHERE user.id= pending_order.user_id
预期o/p:只有2行,因为有2个来自用户1,2的挂起订单。但我得到了所有的排 pending_order 表格与 user table。
pending_order
user
mbzjlibv1#
使用起来会更正确 Inner Join 在这种情况下:
Inner Join
SELECT DISTINCT users.* FROM user Inner Join pending_order On user.id = pending_order.user_id ``` `Join` 类型( `inner` / `full` / `right` ..)是关于希望在单个查询中组合多个相关表的结果的情况。 您可以在此处阅读更多信息:https://www.tutorialspoint.com/sql/sql-using-joins.htm
qv7cva1a2#
你的查询应该有效。但我会这样写:
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 );
2条答案
按热度按时间mbzjlibv1#
使用起来会更正确
Inner Join
在这种情况下:qv7cva1a2#
你的查询应该有效。但我会这样写:
这应该只返回具有挂起订单的用户2。
如果您只希望有待定订单的用户,请使用`exists: