php - MYSQL:查询两个表并将第二个表的结果连接到数组

标签 php mysql

我正在尝试弄清楚如何查询我的 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/

相关文章:

php - 如何使用scopequery执行高级搜索

php - RESTful 缓存的工作原理(和使用)

mysql - Sql 查询以传输同一个表上另一列上的所有记录

mysql - 如何更改 MySQL 中选定列的文本的特定部分?

php - 为什么我的 mySQL 表数据不会回显?

php - 如何在php中ping ip地址并给出结果

php - 无法跳转到 MySQL 结果索引 13 上的第 0 行

php - Codeigniter 项目中的条件大小写错误

mysql - 如何在按月分组时获取最近 3 个月的记录

php - 最佳时间表数据库架构