一个数据库表中有多个字段和另一个表中的主键对应,sql如何查询?

现在这里有两个表:
stock_dismantle
在这里插入图片描述
stock_info
在这里插入图片描述
其中stock_dismantle中的后两个字段都是从stock_info的主键id中获取的,那么这时连表查询怎样才能同时找到stock_id_first和stock_id_second对应的stock_info里的信息呢?
要连两次表,并给表起别名

left JOIN stock_infor AS t1 ON stock_dismantle.stock_id_first = t1.id
left JOIN stock_infor AS t2 ON stock_dismantle.stock_id_second = t2.id
SELECT
	stock_dismantle.id,
	stock_dismantle.stock_id_first,
	stock_dismantle.stock_id_second,
	(
		SELECT
			t1.original_barcode
		WHERE
			t1.id = stock_dismantle.stock_id_first
	) AS aCode,
	(
		SELECT
			t2.original_barcode
		WHERE
			t2.id = stock_dismantle.stock_id_second
	) AS bCode,
	(
		SELECT
			t1.stock_name
		WHERE
			t1.id = stock_dismantle.stock_id_first
	) AS aName,
	(
		SELECT
			t2.stock_name
		WHERE
			t2.id = stock_dismantle.stock_id_second
	) AS bName,
(
		SELECT
			t1.stock_num
		WHERE
			t1.id = stock_dismantle.stock_id_first
	) AS aNum,
	(
		SELECT
			t2.stock_num
		WHERE
			t2.id = stock_dismantle.stock_id_second
	) AS bNum
FROM
	`stock_dismantle`
left JOIN stock_infor AS t1 ON stock_dismantle.stock_id_first = t1.id
left JOIN stock_infor AS t2 ON stock_dismantle.stock_id_second = t2.id

得到如下结果:
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这取决于商品的种类和属性。通常情况下,可以创建一个商品,其中包含商品的名称、描述、价格、库存等信息。如果商品有多个属性,例如颜色、尺寸等,可以创建一个属性,将属性与商品关联起来。此外,还可以创建一个订单,用于记录顾客的购买记录。在数据库中,可以使用关系型数据库或非关系型数据库来保存商品信息。 ### 回答2: 当有多个商品需要存储在数据库中时,可以采用以下方法保存数据: 1. 创建商品:在数据库中创建一个商品,每个商品对应一个记录。的结构可以包括商品ID、名称、描述、价格、库存等字段,可以根据需要进行扩展。 2. 商品属性:如果商品具有一些共同的属性,可以创建一个商品属性,用于存储这些属性。比如,颜色、尺寸、品牌等属性可以归类到商品属性表中,每个属性对应一个记录。 3. 商品分类:如果商品需要按照不同的分类进行管理,可以创建一个分类。每个分类对应一个记录,可以保存分类ID、名称、父分类ID等字段,以构建分类的树形结构。 4. 商品图片:如果需要存储商品的图片,可以创建一个商品图片。每个商品对应多个图片,可以保存图片ID、商品ID、图片链接等字段。 5. 商品评论:如果需要存储商品的评论,可以创建一个商品评论。每个商品对应多个评论,可以保存评论ID、商品ID、用户ID、评论内容、评分等字段。 通过以上的存储方式,可以实现对多个商品进行灵活的管理和查询。可以根据需要使用SQL语句进行增删改查操作,通过商品ID等字段进行关联查询,获取相关的商品信息。同时,可以使用索引等技术对数据库进行优化,提高查询效率。 ### 回答3: 当有多个商品需要保存到数据库时,为了有效地组织和管理数据,可以采用以下方法进行数据库的设计和保存: 1. 创建商品:在数据库中创建一个名为"商品"的,每个商品作为该表中的一条记录,并包含商品相关的属性,如商品ID、名称、价格、库存等。 2. 设计主键:为每个商品设置一个唯一的标识,通常使用自增长的整数作为主键,用于快速定位和操作商品记录。 3. 设置属性字段:为每个商品定义相应的列,例如"商品ID"为整数型,"名称"为字符型,"价格"为浮点型,"库存"为整数型等。 4. 数据类型和约束:根据实际需求,选择适当的数据类型进行存储,并设置相关约束,如设置价格不能为负数,库存不能小于零等。 5. 关联设计:如果商品与其他实体存在关联关系,可以创建关联来记录这些关系,如订单与商品关联,使用订单ID和商品ID作为联合主键。 6. 索引优化:根据查询需求和频率,为查询频繁的属性或列添加索引,提高数据库查询性能。 7. 数据库事务:在对商品进行更新、插入、删除等操作时,使用数据库的事务特性来保证数据的一致性和完整性,避免出现数据异常。 8. 数据备份和恢复:定期进行数据库备份,以防止数据丢失或损坏,同时备份也可以用于数据的恢复。 综上所述,根据具体情况,设计一个合理的商品结构,可以有效地保存和管理多个商品的数据,并提供良好的数据查询和操作性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值