选择另一个表中引用的行

时间:2013-01-25 04:35:17

标签: mysql reference

我有两张桌子,它们如下:

USERS
ORDERS

我希望选择ORDERS表中至少有1个或更多订单的所有用户。我知道在MySQL中有一个内联查询,但是现在我必须选择所有用户,然后再查询每个用户是否有订单 - 所有这些都使用PHP循环。

我现在正在做的事情在道德上是不正确的,所以我基本上只想选择在一个MySQL查询中的ORDERS表中引用的所有用户。

2 个答案:

答案 0 :(得分:0)

这是您应该使用的查询

select distinct u.* from users u
inner join orders o on o.user_id = u.id;

请注意distinctu.*。此查询不会从orders中选择字段,也不会选择相同的用户两次(如果一个订单有多个订单)。

演示:http://sqlfiddle.com/#!2/6ebcc/3

答案 1 :(得分:-1)

您可以使用mysql join 语法。假设您的两个表都有userid列,这就是示例:

SELECT * FROM USERS a JOIN ORDERS b ON
a.UserId = b.UserId

这是一个简单的数据库操作,请参阅此处获取解释join