【发布时间】:2015-08-15 15:21:25
【问题描述】:
我正在使用高级自定义字段开发 WordPress 网站,如果这有帮助的话。
我有两张桌子:posts 和 postmeta
帖子
|-------------------------------------------|
| ID | post_title | post_type |
| 1 | Title 1 | book |
| 2 | Title 1 | product |
| 3 | Title 2 | book |
| 4 | Title 2 | product |
| 5 | Title 3 | book |
| 6 | Title 3 | product |
|-------------------------------------------|
发布元
|----------------------------------------------------------|
| post_id | meta_key | meta_value |
| 3 | Rating | ***** |
| 3 | Publisher | Julian Celestro |
| 3 | Date | April 16, 1840 |
| 3 | Type | Hardback |
| 3 | Price | 19.99 |
| 3 | ISBN | 1234567890 |
|----------------------------------------------------------|
当然还有很多其他事情正在发生,但这些都是相关领域。
所以在帖子表中,有 3 本书,每本书都有一个 book id# 和一个 product id#。
postmeta 表包含所有这些书籍和产品的信息,通过将元键和值与 post id 相关联。
书很多很多,我需要一种方法来将两张表基本结合起来。对于表 1 中的每个 post_title(书名),我想要与产品的 post_type (id = 2,4,6) 关联的 ID 号,并且我想将其与 postmeta 表连接起来。
例如,我想要一个导致返回的 MySQL 语句:
ID=4, post_title='Title 2', meta_key=rating, meta_value=*****
ID=4, post_title='Title 2', meta_key=Publisher, meta_value=Julian Celestro
ID=4, post_title='Title 2', meta_key=Date, meta_value=April 16, 1840
ID=4, post_title='Title 2', meta_key=Type, meta_value=Hardback
ID=4, post_title='Title 2', meta_key=Price, meta_value=19.99
ID=4, post_title='Title 2', meta_key=ISBN, meta_value=1234567890
我尝试了一些类似
的方法SELECT `postmeta`.*
FROM `posts`
RIGHT JOIN `postmeta` ON posts.id = postmeta.post_id
WHERE `post_type` = 'book'
它(预期)给了我我想要的 meta_key 和 meta_value,但它给了我书的 post_id 而不是产品。
【问题讨论】: