假如表及定义如下:
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语句该如何写??