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";

我想念什么?

谢谢你的帮助!

塞布

scaisEdge

您可以使用内部联接和条件进行选择

 select m.id, m.key, m.value 
 from postmeta m
 inner join posts as p on( p.id = m.id and p.type = 1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将一个mysql表中的一行连接到第二个表中的多行

连接两个表,仅从第二个表返回一行

Php,使用第一个键和第二个值连接两个数组

连接一个表(其中第二个表重复)的SQL查询

用第二个数组的两个值替换一个数组的数据

连接两个数据表,仅使用第二个dt中的一列

如何加入两个表并使用第二个表覆盖第一个表?

连接两个表,检查第一个表中的一条记录是否与第二个表中的多条记录匹配

类似于最后一个在不相等的列上连接两个表并在第二个表中求和3个列

如何将第二个表的两个条目作为两列,以便从第一个表中进行选择查询?

连接两个表,将值插入到第二个表中

SQL连接两个表,仅获取第二个表的最新条目

从数组Foreach mysql查询,然后从第一个数组查询第二个查询

MySQL SELECT 两个表,同时用第二个表的字段的值替换第一个表的字段的值

Mysql 如何查询两个表并从第二个表中计算 groupid

压缩两个数组,总是第一个数组的3个元素,然后第二个数组的2个元素

连接两个表并从第二个表中读取两个记录

MYSQL-两个表从每个用户的第二个表的最后一个跟踪行获取记录

SQL 在一个表中查找结果基于第二个表

合并两个数组,第一个基于值,第二个基于键-php

基于Oracle SQL中第一个查询的结果的第二个查询中的UNION表

MYSQL根据第三个表中的关系连接两个表并连接第二个表中的数据

一个查询中有两个MySQL查询,第二个查询基于第一个查询

Kusto - 连接两个表并计算第一个表和第二个表中第一个表中每条记录的键

在第二个左连接 MYSQL 中使用一个左连接表中的列

比较两个 mysql 表的 id 不在第二个列表中

如果第二个匹配,mysql从两个表中选择信息

当第二个表中的布尔值为TRUE时,用第一个表覆盖第二个表的结果

我有两个数组,第一个数组中的值与第二个数组的 ID 字段中的值相同