mysql - SQL查询: how to group items correctly?

标签 mysql sql wordpress

您能否帮忙修改以下 SQL 查询,使其能够在 mySQL 中运行?目前,错误信息是表t1不存在。我想要一个包含“post_title”、“name1”、“url1”列的表格。

如果有帮助,则可以在 Wordpress CMS 数据库上测试此查询

SELECT t1.post_title,
       (select meta_value from t1 where t1.meta_key='name1_class' limit 1) as name1,
       (select meta_value from t1 where t1.meta_key='url1_class' limit 1) as url1
  FROM (select pm.post_id as id, pm.meta_key, pm.meta_value, p.post_title, t.slug from wp_2_postmeta pm
    inner join wp_2_posts p on pm.post_id = p.id
    inner join wp_2_term_relationships tr on tr.object_id = p.id    
    inner join wp_2_term_taxonomy tt on tr.term_taxonomy_id = tt.term_taxonomy_id
    inner join wp_2_terms t on t.term_id = tt.term_id
    where post_type='footercolumn' and post_status='publish' and pm.meta_key like '%class') t1 

“FROM”子句中 t1 表的子查询生成如下数据集:

'id', 'meta_key',  'meta_value', 'post_title', 'slug' 
'18', 'name1_class', 'Our Work', 'Who we are', 'column1' 
'18', 'url1_class', '/work.html', 'Who we are', 'column1' 
'18', 'name1_class', 'Our Team', 'About', 'column2' 
'18', 'url1_class', 'team.html', 'About', 'column2

我希望结果表是:

'title',      'name1',     'url1'
'Who we are', 'Our Work',  'work.html'
'About',      'Our Team',  'team.html'

谢谢

最佳答案

看起来您正在尝试使用子选择来模拟 CTE(公共(public)表表达式),但我不太想出一种方法来实现这一点。

好消息是,如果您可以使用聚合来查找数据,则不需要子选择。

SELECT t1.post_title,
       MAX(CASE WHEN meta_key='name1_class' THEN meta_value END) as name1,
       MAX(CASE WHEN meta_key='url1_class' THEN meta_value END) as url1
  FROM (select pm.post_id as id, pm.meta_key, pm.meta_value, p.post_title, t.slug 
        from wp_2_postmeta pm
        inner join wp_2_posts p on pm.post_id = p.id
        inner join wp_2_term_relationships tr on tr.object_id = p.id    
        inner join wp_2_term_taxonomy tt 
           on tr.term_taxonomy_id = tt.term_taxonomy_id
        inner join wp_2_terms t on t.term_id = tt.term_id
        where post_type='footercolumn' and post_status='publish' and pm.meta_key 
              like '%class') t1 

关于mysql - SQL查询: how to group items correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16540120/

相关文章:

css - 在 WordPress 中创建子主题时遇到问题

javascript - 带有下拉菜单效果的单按钮 - 帮助优化

mysql - windows下如何使用mysql的source命令导入大文件

mysql - 使用 R 和 ORDBC 在数据库的单个表上插入数据框

mysql - 限制mysql中的内连接

mysql - 使用 WHERE 从两个相同的表中选择数据

css - 对齐工具栏中的文本和按钮

mysql - 如何保存wordpress产品页面的设置?

mysql - 按相似字符串分组

php - 如何根据数据库检查哈希密码