我有两个表:如何编写SQL查询,其中一个列返回多个结果C#
用户:
ID Name
----------------
1 Bob
2 Dave
3 Mike
书籍:
ID UserId BookName
------------------------
1 1 Cat in Hat
2 1 Happy Birthday
3 1 One Fish
4 2 Goldilocks
5 2 Three Crows
6 3 Hitchhikers
用户ID是一个关键的显示哪些书各用户拥有
在我的html我想创建看起来像这样的输出:
Name Books Owned
-------------------------
Bob Cat in Hat, Happy Birthday, One Fish
Dave Goldilocks, Three Crows
Mike Hitchhikers
目前,我有一个循环,并嵌套查询这样做:
var queryusers = db.Query("SELECT * FROM users");
foreach (var user in queryusers) {
<span>@user.name</span>
var querybooks = db.Query("SELECT * FROM books WHERE userid = @0", user.id);
foreach (book in querybooks) {
<span>@book.bookname</span>
}
}
我知道这不是很好,但我不知道如何做到这一点与JOIN。如果我尝试:
var queryusersandbooks = db.Query("SELECT * FROM users INNER JOIN books ON users.id = books.userid");
我的查询返回6行,但我只想3.有没有办法做到这一点,而无需在回路中的SQL查询?
感谢
你可以重新格式化你的表/字段描述吗?我甚至无法理解它应该看起来像什么.. – Seano666
我也在你的最后一行似乎你想用户的书没有说谁是用户..是sql .. – scaisEdge
你可以使用查询使用JOIN然后按用户标识对项目进行分组并遍历组。 –