Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql &引用;“未知列”;为在感兴趣的组中选择单行而设计的联接查询中出错_Mysql_Sql_Syntax Error - Fatal编程技术网

Mysql &引用;“未知列”;为在感兴趣的组中选择单行而设计的联接查询中出错

Mysql &引用;“未知列”;为在感兴趣的组中选择单行而设计的联接查询中出错,mysql,sql,syntax-error,Mysql,Sql,Syntax Error,我可以知道为什么我会出错吗 “字段列表”中的未知列“wp_Posteta.post_ID” 以下是相关表格: 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_i

我可以知道为什么我会出错吗

“字段列表”中的未知列“wp_Posteta.post_ID”

以下是相关表格:

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');

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);
以下是查询:

SELECT wp_postmeta.post_ID, wp_posts.post_title, wp_postmeta.meta_value FROM (
SELECT wp_posts.post_title, MIN(wp_postmeta.meta_value) AS minprice
FROM wp_postmeta 
  JOIN wp_posts ON wp_postmeta.post_ID=wp_posts.ID
  WHERE wp_posts.post_type = 'Product'
GROUP BY wp_posts.post_title
)
as x inner join 

(
SELECT wp_postmeta.post_id, wp_posts.post_title, wp_postmeta.meta_value
FROM wp_postmeta 
  JOIN wp_posts ON wp_postmeta.post_ID=wp_posts.ID
  WHERE wp_posts.post_type = 'Product'
  ORDER BY wp_posts.post_title, wp_postmeta.meta_value
)
 as f on x.post_title = f.post_title and f.meta_value = x.minprice


如果您感兴趣,我将根据这段代码改编此代码,它将为您提供我所做工作的上下文。

在使用子查询时,您必须在选择中使用子查询别名

SELECT f.post_ID, x.post_title, f.meta_value
FROM (
SELECT wp_posts.post_title, MIN(wp_postmeta.meta_value) AS minprice
FROM wp_postmeta 
  JOIN wp_posts ON wp_postmeta.post_ID=wp_posts.ID
  WHERE wp_posts.post_type = 'Product'
GROUP BY wp_posts.post_title
)
as x inner join 

(
SELECT wp_postmeta.post_id, wp_posts.post_title, wp_postmeta.meta_value
FROM wp_postmeta 
  JOIN wp_posts ON wp_postmeta.post_ID=wp_posts.ID
  WHERE wp_posts.post_type = 'Product'
  ORDER BY wp_posts.post_title, wp_postmeta.meta_value
)
 as f on x.post_title = f.post_title and f.meta_value = x.minprice

选择wp_postmeta.post_ID、wp_posts.post_title、wp_postmeta.meta_value-整个语句都不正确,您需要为这些列使用别名。别名问题。问清楚简洁的问题做得很好-非常罕见,unfortunately@Strawberry谢谢感谢您的提示和反馈。