mysql - 如何查询在另一个表中有许多关联行的记录被视为一行
问题描述
我有一张wp_posts
桌子:
id
post_title
post_status
post_type
和wp_postmeta
表:
meta_id
post_id
meta_key
meta_value
我想查询此表以表示为:
post_id | a_meta_key_from_postmeta_col | another_meta_key
--------------------------------------------------------------------------------------
1 | value_of_the_meta_key_assotated | value_of_the_other_key_assotated_with_this_post
2 | ...... | ...
SELECT wp_posts.id, wp_postmeta.meta_key, wp_postmeta.meta_value
FROM `wp_posts`
INNER JOIN wp_postmeta ON wp_posts.id=wp_postmeta.post_id
WHERE wp_posts.post_type='foo'
AND post_status='publish'
AND (wp_postmeta.meta_key='some_key'
OR wp_postmeta.meta_key='another_some_key';
这是结果
id | meta_key | meta_value
1 | some_key | some_value
1 | another_key | another_value
2 | some_key | some_value
... | ... | ...
这不是我想要的。
(我的最终目标是将其导出到 csv 文件)
解决方案
如果要导出到 csv 文件,则应使用into outfile
语句。
SELECT wp_posts.id, wp_postmeta.meta_key, wp_postmeta.meta_value
FROM wp_posts
INNER JOIN wp_postmeta ON wp_posts.id=wp_postmeta.post_id
WHERE wp_posts.post_type='foo'
AND post_status='publish'
AND wp_postmeta.meta_key='some_key'
OR wp_postmeta.meta_key='another_some_key'
into outfile './export.csv' fields terminated by ';' lines terminated by '\n';
如果您想在每列结果之前添加一些文本,请使用CONCAT_WS()
:https ://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat-ws
SELECT wp_posts.id, CONCAT_WS("_","a_key_from",wp_postmeta.meta_key) ,CONCAT_WS("_","a_value_from",meta_value)
FROM wp_posts
INNER JOIN wp_postmeta ON wp_posts.id=wp_postmeta.post_id
WHERE wp_posts.post_type='foo'
AND post_status='publish'
AND wp_postmeta.meta_key='some_key'
OR wp_postmeta.meta_key='another_some_key'
into outfile './export.csv' fields terminated by ';' lines terminated by '\n';
进入outfile
语句示例:
推荐阅读
- asp.net - 如何使用 vb.net/asp.net 中的搜索框在数据库中搜索内容
- html - 我的移动菜单导航栏没有关闭,它只打开
- jetbrains-ide - JB Rider 看不到更新的框架
- symfony - Symfony 创建自己的框架,自定义错误处理的具体例子
- html - 如何让 Bootstrap 滚动动画正常工作?
- ios - iOS - 为 Swift 中的每个 tableview 部分添加边框
- spring - Spring集成:使用引用而不是值作为属性?
- html - 如何让我的图标和横幅图像对齐。
- javascript - 从字符串中提取数字并删除小数并将其添加到字符串中
- r - 使用 np 和降雪并行估计多个非参数模型