【发布时间】:2021-02-05 05:30:23
【问题描述】:
这是一个我试图在 SQL 中解决的随机问题。
假设您有一个表格,其中行成对出现。所以你将拥有:
same_table
ID Name Family_Id Other_id
1 B. 1. 2 --> This ID is id 2 in the same table.
2. C. nil nil
3 D. 1 4 --> this ID is also the next row in the table.
4 E. nil nil
抱歉,这非常令人费解且难以解释。本质上,我需要将行连接到 family_id 1 和该对的另一部分。
所以我知道SELECT * FROM same_table WHERE family_id=1 --> 会得到一半。
如何编写一个查询,专门查找连接到特定 family_id 的行和该行对。
对不起...解释得不好,但我不知道该怎么问。
【问题讨论】:
-
在上述情况下,是否还需要返回四行,返回两行是否更合适?比如
B, C作为第一行,D, E作为第二行? -
每一行都与一个对象相关,如果有意义,我需要所有 4 个对象?
-
您仍然可以在一行中获取两个对象的完整信息...
ID, Name, FamilyID, OtherID, OtherName在一行中,ID, Name描述父行,OtherID, OtherName描述子行 (如果没有孩子,则包含 NULL)。然后,它只是一个LEFT JOIN。 -
抱歉还是很新。所以本质上,我想找到两者并将它们存储在一个变量中,该变量将它们全部作为变量中的单独对象。因此,当我调用该变量时,我拥有所有这些行?如果这有意义的话。