我在pets和用户之间有一个多对多的关系,有一个userpets连接表。我一直在尝试编写一个sql查询,它将返回用户名和行走次数。但是,我只能返回一个用户和一个timesweed,它们甚至不是关联的。
当前的sql语句是:
SELECT user_pets.timesWalked, users.name
FROM user_pets
INNER JOIN users ON user_pets.user_id = users.id
返回的结果是:
[{"timesWalked"=>20, "name"=>"user1", 0=>20, 1=>"user1"}]
在这个例子中,user1不是遛狗20次的那个,这是我需要的关联。
table name: users
name
user1
user2
user3
table name: user_pets
name timesWalked userId petId
usep1 10 2 1
usep2 20 1 3
usep3 5 1 2
table name: pets
name
pet1
pet2
pet3
我的预期结果是:
[{"timesWalked"=>20, "name"=>"user1"}]
[{"timesWalked"=>10, "name"=>"user3"}]
[{"timesWalked"=>5, "name"=>"user2"}]
在本例中,用户表中的用户名与用户表中的timesweak相关联
我如何返回所有的timesweed和所有的用户名谁走了宠物?
1条答案
按热度按时间klr1opcd1#
可以使用内部连接来实现这一点。下面的查询列出了所有的用户谁走了所有宠物的总次数。i、 e.用户1已经遛了两只宠物,每次2次。
看看这把小提琴:http://sqlfiddle.com/#!17/c91a1/2号