tiger波波 2021-08-16 19:44 采纳率: 0%
浏览 23

MS SQL 如何查询符合多个字段符合多个条件的记录?

假如表及定义如下:

table_box :
box_ID
box_name

table_box_data :
box_ID
part1_type
part1_no
part2_type
part2_no
part3_type
part3_no

table_apple:
part_no
part1_value1
part1_value2

table_orange:
part_no
part2_value1
part2_value2

table_banana :
part_no
part3_value1
part3_value2

我想查询表table_box 中以下记录:
1,给定apple及属性
2,给定banana 及属性
查询table_box 中任意一个part_type为apple或者为banana的记录

我目前自己写了一个语句:

SELECT table_box.* from 
table_box 
INNER JOIN 
table_box_data 
ON 
table_box.box_ID = table_box_data.box_ID AND 'apple' IN (table_box_data.part1_type, table_box_data.part2_type, table_box_data.part3_type)

UNION

SELECT table_box.* from 
table_box 
INNER JOIN 
table_box_data 
ON 
table_box.box_ID = table_box_data.box_ID AND 'banana' IN (table_box_data.part1_type, table_box_data.part2_type, table_box_data.part3_type)

但是往下就写不下去了
因为我想用给定的apple属性删选结果,需要连接table_apple表,而连接table_apple表需要知道part_no,
但是我不知道到底是哪个part_type是apple,也就无法得到这个part对应的part_no

可能我这个思路就不对,导致写不下去。

请问想实现我这个查询,SQL语句该如何写??

  • 写回答

1条回答 默认 最新

  • 往事随风云渐起 2022-12-06 15:39
    关注

    把各个表的主外键关系列出来 每张表提供几条数据验证

    评论

报告相同问题?

问题事件

  • 创建了问题 8月16日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题