首页 / MYSQL / mysql – 从孙表中检索记录
mysql – 从孙表中检索记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 从孙表中检索记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1118字,纯文字阅读大概需要2分钟。
内容图文
![mysql – 从孙表中检索记录](/upload/InfoBanner/zyjiaocheng/902/a65875283585444395e0247fe00375a2.jpg)
我的问题是Rails相关,但即使是通用的SQL答案也会有用.
我正在处理四个表:类别,书籍,类别书和食谱.类别拥有并且属于许多书籍.书籍有很多食谱.
在Rails的代码中翻译我有:
class Category < ActiveRecord::Base
has_and_belongs_to_many :books
end
class Book < ActiveRecord::Base
has_and_belongs_to_many :categories
has_many :recipes
end
class Recipe < ActiveRecord::Base
belongs_to :book
end
我正在尝试检索属于给定类别的书籍中包含的所有食谱.
我知道如何使用许多查询执行此操作,但不能使用单个查询.我会做很多查询:
recipes = []
books = @category.books
books.each do |book|
recipes << book.recipes.flatten
end
我不喜欢它,因为它需要N 1个查询.我可能需要一个连接来同时完成所有操作,但我不确定ActiveRecord或SQL中的语法.我正在使用MySQL.
解决方法:
不能用Ruby.一般的SQL答案(对列名做出一些假设)将是:
SELECT Recipe.*
FROM Recipe
INNER JOIN Book ON Recipe.Book = Book.Id
INNER JOIN Category ON Book.Category = Category.Id
WHERE Category.Id = ?
编辑添加了另一个版本的查询,以匹配Pinky Brain关于表和列的新信息.像这样的东西?
SELECT Recipe.*
FROM Recipe
INNER JOIN Categories_Books ON Categories_Books.book_id = Recipe.book_id
WHERE Categories_Books.category_id = ?
内容总结
以上是互联网集市为您收集整理的mysql – 从孙表中检索记录全部内容,希望文章能够帮你解决mysql – 从孙表中检索记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。