在多个JOINS表上使用MIN BY GROUP BY

时间:2014-06-23 08:09:19

标签: sql sqlite

我正在使用SQLite,我在以下场景中提出正确的查询请求时遇到问题:

我有四张桌子,我们称之为t.at.bt.ct.d

t.ct.d存在多对一关系,因此t.c的列名为parent_id_d

t.at.c彼此之间存在多重关系,所以我创建了一个名为t.b的联结表,以便将它们相互链接。

现在我想创建一个返回t.at.d中已加入行的查询请求,其中每一行应在表id_a和{{t.a列中包含不同的条目1}}表id_d(或t.d的{​​{1}}列中的列,它是相同的),通常类似于parent_id,但我希望该表中的所有行都返回,所以我可能应该t.cDISTINCT id_a, id_dGROUP BY一起使用,如此答案所述DISTINCT clause in SQLite但我无法使其正常工作

1 个答案:

答案 0 :(得分:0)

我终于设法用这个查询来解决它:

SELECT * FROM t_a INNER JOIN(SELECT DISTINCT id_parent_aid_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

其中:

  1. id_did_parent_a中的列,其中包含来自t_b
  2. 的外键
  3. t_aid_parent_c中的列,其中包含来自t_b
  4. 的外键
  5. t_cid_parent_d中的列,其中包含来自t_c
  6. 的外键