我正在使用SQLite,我在以下场景中提出正确的查询请求时遇到问题:
我有四张桌子,我们称之为t.a
,t.b
,t.c
,t.d
t.c
与t.d
存在多对一关系,因此t.c
的列名为parent_id_d
t.a
和t.c
彼此之间存在多重关系,所以我创建了一个名为t.b
的联结表,以便将它们相互链接。
现在我想创建一个返回t.a
和t.d
中已加入行的查询请求,其中每一行应在表id_a
和{{t.a
列中包含不同的条目1}}表id_d
(或t.d
的{{1}}列中的列,它是相同的),通常类似于parent_id
,但我希望该表中的所有行都返回,所以我可能应该t.c
与DISTINCT id_a, id_d
或GROUP BY
一起使用,如此答案所述DISTINCT clause in SQLite但我无法使其正常工作
答案 0 :(得分:0)
我终于设法用这个查询来解决它:
SELECT * FROM t_a
INNER JOIN(SELECT DISTINCT id_parent_a
,id_parent_d
FROM t_b
内部联合t_c
ON id_parent_c
= {{1 }})ON ic_c
= id_a
INNER JOIN id_parent_a
ON t_d
= id_parent_d
其中:
id_d
是id_parent_a
中的列,其中包含来自t_b
t_a
是id_parent_c
中的列,其中包含来自t_b
t_c
是id_parent_d
中的列,其中包含来自t_c