查询错误:错误:“SELECT”处或附近有语法错误

问题描述 投票:0回答:1

所以,我正在尝试 8weeksqlchallenge,我通常使用 MySQL,那里的错误代码非常干净,但 dbfiddle.com 上的错误代码则不是那么多

这是我的架构

CREATE SCHEMA dannys_diner;
SET search_path = dannys_diner;

CREATE TABLE sales (
  "customer_id" VARCHAR(1),
  "order_date" DATE,
  "product_id" INTEGER
);

INSERT INTO sales
  ("customer_id", "order_date", "product_id")
VALUES
  ('A', '2021-01-01', '1'),
  ('A', '2021-01-01', '2'),
  ('A', '2021-01-07', '2'),
  ('A', '2021-01-10', '3'),
  ('A', '2021-01-11', '3'),
  ('A', '2021-01-11', '3'),
  ('B', '2021-01-01', '2'),
  ('B', '2021-01-02', '2'),
  ('B', '2021-01-04', '1'),
  ('B', '2021-01-11', '1'),
  ('B', '2021-01-16', '3'),
  ('B', '2021-02-01', '3'),
  ('C', '2021-01-01', '3'),
  ('C', '2021-01-01', '3'),
  ('C', '2021-01-07', '3');
 

CREATE TABLE menu (
  "product_id" INTEGER,
  "product_name" VARCHAR(5),
  "price" INTEGER
);

INSERT INTO menu
  ("product_id", "product_name", "price")
VALUES
  ('1', 'sushi', '10'),
  ('2', 'curry', '15'),
  ('3', 'ramen', '12');
  

CREATE TABLE members (
  "customer_id" VARCHAR(1),
  "join_date" DATE
);

INSERT INTO members
  ("customer_id", "join_date")
VALUES
  ('A', '2021-01-07'),
  ('B', '2021-01-09');

并且询问是找到每个客户购买的第一个产品,所以我想到使用以下代码进行子查询,但它返回查询错误:错误:“SELECT”处或附近的语法错误

SELECT sales.customer_id, sales.product_id
FROM dannys_diner.sales WHERE sales.order_date = 
SELECT MIN(sales.order_date)
FROM dannys_diner.sales 
GROUP BY sales.customer_id;
sql postgresql select subquery
1个回答
-1
投票

子查询周围需要

(
)
—— 就像这样

SELECT sales.customer_id, sales.product_id
FROM dannys_diner.sales
WHERE sales.order_date = ( 
  SELECT MIN(sales.order_date)
  FROM dannys_diner.sales 
  GROUP BY sales.customer_id
);
© www.soinside.com 2019 - 2024. All rights reserved.