我开始使用数据库,出现了一个问题。 我正在尝试使用此查询按名称从产品表中获取商品。 我需要使用JOIN,因为我的表与其他人联系在一起。

从产品WHERE pName = '45 -DAVID'中选择*在product.product_category_id = product_category.id上加入product_category在product.company_manufacturer_product_id = company_manufacturer_product.id上加入company_manufacturer_product

但是,当我收到此错误时: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'join product_category on product.product_category_id = product_category.id join ' at line 1 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'join product_category on product.product_category_id = product_category.id join ' at line 1

我的数据库脚本:

create table company_manufacturer_product(
  id int not null unique AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(30) not null unique
);

INSERT INTO company_manufacturer_product(id, name) VALUES (default, 'Adidas');
INSERT INTO company_manufacturer_product(id, name) VALUES (default, 'Collins');
INSERT INTO company_manufacturer_product(id, name) VALUES (default, 'Luis Vuitton');

create table product_category(
  id int not null unique AUTO_INCREMENT PRIMARY KEY,
  cName VARCHAR(30) not null unique
);

INSERT INTO product_category (id, cName) VALUES (default, 'jeans');
INSERT INTO product_category (id, cName) VALUES (default, 'sweatshirts');
INSERT INTO product_category (id, cName) VALUES (default, 'accessories');
INSERT INTO product_category (id, cName) VALUES (default, 'jackets');

create table product(
  id int not null unique AUTO_INCREMENT PRIMARY KEY,
  pName VARCHAR(30) not null,
  pSize VARCHAR(3) not null,
  price DECIMAL(6, 2) not null,
  color VARCHAR(30) not null,
  imageName VARCHAR(255) not null,
  company_manufacturer_product_id int not null,
  product_category_id int not null,
  KEY cmp_company_manufacturer_product_id(company_manufacturer_product_id),
  KEY pc_product_category_id(product_category_id),
  CONSTRAINT cmp_company_manufacturer_product_id FOREIGN KEY(company_manufacturer_product_id) references company_manufacturer_product(id),
  CONSTRAINT pc_product_category_id FOREIGN KEY(product_category_id) REFERENCES product_category(id)
);

INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'SST_TRACK_JACKET', 'M', 75.5, 'red', '1.png', 1, 4);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, '45-DAVID', 'L', 100.00, 'blue', '2.png', 2, 1);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'ALLIANCE-SUNGLASSES', 'S', 810.00, 'black', '3.png', 3, 3);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'SWEATSHIRTS-228', 'XL', 120.20, 'blue', '4.png', 2, 2);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'TREFOIL HOODIE', 'M', 75.10, 'white', 'TREFOIL_HOODIE.png', 1, 2);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'SPLIT OVERSIZED JACKET', 'L', 2930.30, 'grey', 'SPLIT_OVERSIZED_JACKET.png', 3, 4);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'PROCESS_SP1 WATCH', 'S', 75.0, 'red', 'PROCESS_SP1_WATCH.png', 1, 3);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'CJEAN30190', 'XL', 69.50, 'blue', 'CJEAN30190.png', 2, 1);
INSERT INTO product (id, pName, pSize, price, color, imageName, company_manufacturer_product_id, product_category_id) VALUES (default, 'NEON MONOGRAM SWEATER', 'M', 765.50, 'neon', 'NEON_MONOGRAM_SWEATER.png', 3, 4);

我在做什么错,我该如何解决? 如果我没有指定参数,那么一切都会很好。

#1楼 票数:1 已采纳

有关查询和SQL的某些基础可能很容易阅读。

查询总是像这样:

SELECT
  MyCols
FROM 
 MyTable1
JOIN
 OtherTable2
WHERE
 myCondition

此外,尝试始终指定它是INNER JOIN还是LEFT JOIN ,这样更容易阅读查询并快速理解它。

因此,对于您的查询:

SELECT * 
FROM product 
INNER JOIN product_category on product.product_category_id = product_category.id
INNER JOIN company_manufacturer_product
   on product.company_manufacturer_product_id=company_manufacturer_product.id
WHERE pName='45-DAVID'

  ask by Mefisto_Fell translate from so

未解决问题?本站智能推荐:

1回复

使用指定的商品获得最畅销的商品

我有一个表order_detail包含此信息 我想用当前产品获得最畅销的产品(前5个元素),比如说产品ID 2 我尝试了这个,但是返回了一个错误的结果 结果应该是
2回复

编写查询以从集合中获取最新商品的最有效方法是什么?

抱歉,标题。 那是我能想到的最好的。 无论如何,这是我的问题-我有2个表,一个Customer表和Order表,如下所示: 客户与订单之间存在一对多的关系,即客户可以拥有多个由“ customerId”标识的订单。 现在这是我的问题。 我正在寻找所有客户及其最新订单的列表。 根
1回复

从表格中仅获取不同的月份和日期

我试图从表中仅获取月份和年份,并将其创建并显示在列表中,而我设法做到这一点: 然后以这种方式循环显示: 当年和月都相同时,我现在不需要显示重复的记录。 例如当我有 网站应仅显示一项。 我已经考虑过独特的关键字,但这种方式不符合我想要的方式。 顺便说一句,它在WordPress
1回复

如何在购物软件系统设计中成功地将“订购商品”与“商品商品”分开?

我正在开发一个用于在线订购产品的应用程序。 我将首先向您展示 ER 图的一部分,然后进行解释。 这里的“产品”是食品,它们将进入fresh_products表。 如您所见,一个fresh_product由product species 、 category 、 type 、 size和produc
1回复

如何从GROUPBY之后的表格中获取最少的ID

我想获取用户的最新消息。 而且我需要获取每个消息的LAST ID。 我该怎么做? 谢谢! 结构形式 查询 : 结果 : 我需要什么? 如果您有同样的问题? 我找到解决办法!
1回复

使用MYSQL在给定日期的基础上获取当前期间

假设我有一个具有以下结构的sql表 create table periods(id INT(6) AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),start_date date,end_date date); 并且其中包含以下记录。 现在,假设我
5回复

如何在MYSQL中存储用户购买的商品?

因此,我正在学习php / mysql,并且想知道如何将用户购买的商品存储在表中。 到目前为止,我制作了一个名为X的数据库。X有几个表,它们是: (a)用户-包含用户名,密码和user_id(主键) (b)商品-其中包含商品名称,商品价格和商品数量 现在我有一个问题。 假设用户购
1回复

在数据库中订购商品

我正在寻找一种有效的方法来对数据库中表中的插入项进行排序。 我正在考虑两种策略来实现它。 第一项策略: 在表中添加订单列,并保持其与每个创建,更新和删除(其成本很高的方法)的一致性,尤其是当我需要更改订单时,需要在更新元素之后更改所有元素。 第二种策略: 为所有元数据创建me