我有以下(簡化的)數據庫的結構:單SQL查詢來檢索信息,並與行走從3個表計數1.6
表book
id
title
表page
id
bookId
number
表figure
id
pageId
page.bookId
和figure.pageId
是分別指向主鍵book.id
和page.id
的外鍵。
一本書可以沒有頁面,一個頁面可以沒有數字。
對於一個指定的書ID,具有單 SQL查詢,我想找回
- 書信息
- 頁面列表各自的信息
- 數量對於每一頁的數字結果的
一個例子JSON表示如下:
{
"id": 34,
"title": "The title"
"pages": [
{
"id": "44",
"number": 1
"figureCount": 2
},
{
"id": "45",
"number": 2
"figureCount": 5
},
...
]
}
Propel 1.6是否可能,以及產生的SQL查詢是什麼?
我使用MySql 5.0。
編輯:這是我(簡化)推進schema.xml中:
<table name="book" phpName="Book">
<column name="id" type="bigint" required="true" primaryKey="true" autoIncrement="true" />
<column name="title" type="varchar" size="512" required="true" />
</table>
<table name="page" phpName="Page" >
<column name="id" type="bigint" required="true" primaryKey="true" autoIncrement="true" />
<column name="book_id" type="bigint" required="true" />
<column name="number" type="integer" required="true" />
<foreign-key foreignTable="book" phpName="Book" refPhpName="Page" onUpdate = "cascade" onDelete = "cascade">
<reference local="book_id" foreign="id" />
</foreign-key>
</table>
<table name="figure" phpName="Figure">
<column name="id" type="bigint" required="true" primaryKey="true" autoIncrement="true" />
<column name="page_id" type="bigint" required="true" />
<foreign-key foreignTable="page" phpName="Page" refPhpName="Figure" onUpdate = "cascade" onDelete = "cascade">
<reference local="page_id" foreign="id"/>
</foreign-key>
</table>
謝謝。我嘗試了類似的東西,但是我收到錯誤「書桌上的未知關係圖」。這是因爲Book和Figure對象之間沒有定義直接的關係,而'leftJoin(Book.Figure)'失敗。我添加了schema.xml以供參考。 –
它似乎是'Page.Figure'。試一試。 – j0k
太棒了,那就是訣竅! –