【发布时间】:2018-04-07 00:20:33
【问题描述】:
所以我之前在我的 SELECT 语句中使用了一个(我认为很复杂的)IN 语句字符串来做到这一点......但我不小心删除了我的工作文件并丢失了我的最终产品......并且已经忘记了如何去做吧。
我正在寻求重新创建该语句的帮助,或者尝试使用 JOIN.... 我不知道该怎么做。 (我对编程有足够的了解,可以在大约 50% 的时间里四处探索并获得成功。)
我正在使用一个包含三个感兴趣的表的数据库。
表 1 包含: master_id, sub_id1, sub_id2
表 2 包含: sub_id, sub_sub_id1, sub_sub_id2
表 3 包含: sub_sub_id,数据
对于不明确的数据结构,请提前道歉。所以master_id由sub_id1和sub_id2组成。 sub_id1 和 sub_id2 被标识为表 2 中的普通 sub_id,由 sub_sub_id1 和 sub_sub_id2 组成。 Sub_sub_id1 和 2 在表 3 中被标识为只是 sub_sub_id 以及我需要的相关数据。
我要做的是从表 3 中提取所有 sub_sub_id 和数据,当它们存在于表 1 的树中时。(并非所有 sub_sub_id 都存在于表 3 之外。)
因此,如果在表 2 中找到表 3 中的 sub_sub_id 作为 sub_sub_id1 或 sub_sub_id2,并且在表 1 中找到表 2 中相应的 sub_id 为 sub_id1 或 sub_id2,则从表 3 中获取 sub_sub_id 和数据。
为了让事情变得更复杂,并不是每个 master_id 都有一个 sub_id2。而且我只想查看同时具有 sub_id1 和 sub_id2 的行。
我希望这有某种意义,并且有足够的信息可以提供帮助!我正在出差旅行,并且远离了上次让我解决这个问题的所有手写便签。 :(
【问题讨论】:
-
也许:SELECT tbl3.sub_sub_id FROM table3 tbl3 INNER JOIN table2 tbl2 ON tbl3.sub_sub_id = tbl2.sub_sub_id1 INNER JOIN table2 tbl2_1 ON tbl3.sub_sub_id = tbl2.sub_sub_id2 INNER JOIN_table1 tbl1 ON tbl3.sub tbl1.sub_id1 OR tbl3.sub_sub_id = tbl1.sub_id2 WHERE tbl1.sub_id2 不为空;
-
“table3 tbl3”冗余是否是 FROM 或 JOIN 语句的一部分?还是只在它们之间插入一次?
-
或者是合并表的占位符之一?
-
目前没有任何运气,但不应该:INNER JOIN table1 tbl1 ON tbl3.sub_sub_id = tbl1.sub_id1 OR tbl3.sub_sub_id = tbl1.sub_id2" be: "INNER JOIN table1 tbl1 ON tbl2. sub_id = tbl1.sub_id1 OR tbl2_1.sub_id = tbl1.sub_id2 WHERE tbl1.sub_id2"