我正在尝试弄清楚如何查询我的 MYSQL 数据库 - 不幸的是我根本不擅长 MYSQL...
我有两个表:
帖子:
---------------------
| id | name | type |
---------------------
| 1 | mike | type1 |
| 2 | john | type2 |
| 3 | bill | type1 |
---------------------
后元:
-------------------------------
| id | post_id | key | value |
-------------------------------
| 1 | 1 | key1 | val1 |
| 2 | 1 | key2 | val2 |
| 3 | 3 | key3 | val3 |
-------------------------------
我想要的是这样的逻辑:
When posts.type == type 1
select m.id, m.key, m.value from postmeta m
where post_id === posts.id
最好是,如果我有一个 $result => $row 是这样的:
array (
id => post.id,
name => post.name,
options => array (
key => value
...
)
)
这是我现在的查询。它接近了,但还没有成功:
$sql = "SELECT p.id, p.post_title, p.post_content, p.post_type, m.meta_key, m.post_id, m.meta_id, m.meta_value
FROM posts p
JOIN postmeta m ON m.post_id = p.id
WHERE type='type1'
GROUP BY p.id";
我错过了什么?
感谢您的帮助!
塞布
最佳答案
您可以使用内部连接和条件进行选择
select m.id, m.key, m.value
from postmeta m
inner join posts as p on( p.id = m.id and p.type = 1)
关于php - MYSQL:查询两个表并将第二个表的结果连接到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109713/