我有两张桌子:
1)
CREATE TABLE IF NOT EXISTS book(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
class__id INT,
book_order INT,
title VARCHAR(255),
content TEXT(65535)
) ENGINE=MyISAM;
2)
CREATE TABLE IF NOT EXISTS book_image(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
class__id INT,
type VARCHAR(12),
type__id INT,
image_order INT,
url VARCHAR(50)
) ENGINE=MyISAM;
我需要获取给定book.class__id
的图书清单,以及包含book_image.type = 'book'
和book_image.type__id = book.id
的每本图书的所有图片。此外,book_images需要按image_order
列分别为每本书排序。
我需要生成的对象看起来像这样:
object(stdClass)
'books' => array (size=2)
0 =>
object(stdClass)
'id' => 13
'class__id' => 55
'book_order' => 1
'title' => xyz
'content' => xyz
'book_images' => array (size=2)
0 =>
object(stdClass)
'id' => 529
'class__id' => 55
'type' => book
'type__id' => 13
'image_order' => 1
'url' => xyz
1 =>
object(stdClass)
'id' => 27
'class__id' => 55
'type' => book
'type__id' => 13
'image_order' => 2
'url' => xyz
1 =>
object(stdClass)
'id' => 21
'class__id' => 55
'book_order' => 2
'title' => xyz
'content' => xyz
'book_images' => array (size=1)
0 =>
object(stdClass)
'id' => 420
'class__id' => 55
'type' => book
'type__id' => 21
'image_order' => 1
'url' => xyz
我想为每本书一个接一个地避免复杂的foreach()循环与多个查询...我尝试了各种类型的连接并选择子查询无济于事。
如何使用单个查询执行此操作?