【发布时间】:2019-07-01 00:07:30
【问题描述】:
在这个查询中,我还想在同一个查询中选择第三列wp_postmeta.post_id。如果不通过涉及子查询的 JOIN 附加它,我无法弄清楚如何做到这一点。难道没有更简单的方法,不使用子查询吗? (如果解决方案高效且不太占用资源,则愿意在子查询上让步。)
MariaDB 10.1
✓create table wp_posts ( ID integer primary key auto_increment, post_title varchar(30), post_type varchar(30) );
✓create table wp_postmeta ( ID integer primary key auto_increment, post_id integer, meta_key varchar(30) not null default '_regular_price', meta_value integer not null );
✓insert into wp_posts (post_title, post_type) values ('Apple Pie','Product'), ('French Toast','Product'), ('Shepards Pie','Product'), ('Jam Pie','Product'), ('Jam Pie','Product'), ('Plate','Not a Product'), ('Bucket','Not a Product'), ('Chequebook','Not a Product'), ('French Toast','Product'), ('French Toast','Product'), ('Banana','Product'), ('Banana','Product'), ('Banana','Product');
✓insert into wp_postmeta (post_id, meta_value) values (1,10), (2,5), (3,9), (4,8), (5,11), (6,12), (7,10), (8,6), (9,1), (10,1), (11,7), (12,2), (13,2);
post_title |最小值(wp_postmeta.meta_value) :----------- | --------------------------: 苹果派 | 10 香蕉 | 2 法式吐司 | 1 果酱派 | 8 谢泼德派 | 9SELECT wp_posts.post_title, MIN(wp_postmeta.meta_value) FROM wp_postmeta JOIN wp_posts ON wp_postmeta.post_id = wp_posts.id WHERE wp_posts.post_type = 'Product' AND wp_postmeta.meta_key = '_regular_price' GROUP BY wp_posts.post_title ORDER BY wp_posts.post_title
db小提琴here
编辑:我最初的问题不够清楚和明确 - 我想折叠重复的 post_titles 并使用与 MIN(pm.meta_value) 对应的 wp_postmeta.post_id
【问题讨论】:
-
由于您的版本没有 CTE,请按照 [groupwise-maximum] 标签获取解决方案。
标签: sql syntax mariadb groupwise-maximum