我正在使用高级自定义字段在WordPress网站上工作,如果这有帮助的话 .
我有两张 table : posts
和 postmeta
Posts
|-------------------------------------------|
| 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 Meta
|----------------------------------------------------------|
| 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本书,每本书都有一个书籍编号#和一个产品编号# .
postmeta表包含有关所有这些书籍和产品的信息,方法是将元键和值与帖子ID相关联 .
有很多书,我需要一种基本上结合两个表的方法 . 对于表1中的每个post_title(书名),我想要与产品的post_type相关联的ID号(id = 2,4,6),我想将其与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而不是产品 .
2 回答
添加另一个meta_key'product_id',将meta_value设置为产品的ID,将post_id设置为book的ID .
然后查询:)
我觉得你的意思是这样的
Output