【发布时间】:2013-05-13 14:14:04
【问题描述】:
我使用以下代码从我的 MySQL 数据库中获取书籍对象。
$q = $pdo->prepare('SELECT
book_id "id",
book_title "title",
book_slug "slug"
FROM book
WHERE book_id=:id');
$q->bindParam(':id', $id, PDO::PARAM_INT);
$q->execute();
$book = $q->fetchObject('Book');
书籍与歌曲具有多对多关系,其中有song_id、song_title 和song_lyrics,所以我有一个带有book_id 和song_id 的book_song 表。
我想获取属于一本书的所有歌曲。有没有一种简洁的方法可以在一个查询中执行此操作?
我在这里寻找的是如何以简洁的方式编写查询,以及如何处理结果以最终得到一个 Book 对象,该对象包含一组 Song 对象,而无需太多代码。
【问题讨论】:
-
嗯......你的意思是一个查询来检索属于一本书的所有歌曲......你为什么不使用连接语句?
-
使用 PDO 使用 fetchall 创建关联数组php.net/manual/en/pdostatement.fetchall.php
-
你肯定不是指
INNER JOIN? -
当然使用 JOIN 也是其中的一部分。我想知道的是如何编写 SQL 和 PHP 以尽可能干净地做到这一点。
-
@gillyspy 已经使用 fetchAll 来获取书籍或歌曲或其他内容的列表,但我在这里谈论的是外键,我认为 fetchAll 没有任何作用。
标签: php mysql sql pdo many-to-many