我有一个包含3个表的SQLite数据库。这些表中的每一个都有两列:名称和值,以便所有表具有相同的记录(名称)但不同的值。如何选择跨越这些表的最小值之和的记录,以使记录名称是唯一的?
姓名:史蒂文,杰米,迈克尔,乔丹,加里
值
(按名称顺序)
表1:1,2,3,4,5表2:2,3,1,5,6
表3:9,0,2,11,3输出应该返回(Steven,Michael,Jamie),因为在这种情况下,值的总和将等于2,这是最不可能的。
答案 0 :(得分:0)
你可以试试这个
SELECT T1.val,T2.val,T3.val FROM T1 , T2 , T3
WHERE T1.val <> T2.val AND T2.val <> T3.val AND T1.val <> T3.val
GROUP BY T1.val,T2.val,T3.val,(T1.no + T2.no + T3.no)
HAVING (T1.no + T2.no + T3.no) =
(SELECT MIN(T1.no)+MIN(T2.no)+MIN(T3.no) FROM T1 , T2 , T3
WHERE T1.val <> T2.val AND T2.val <> T3.val AND T1.val <> T3.val)
如果有超过3个表,只需在FROM T1 , T2 , T3, T4,..TN
之后添加表格
并通过在where子句中添加它来添加Comparision不相等
每个表T1.val <> T4.val AND T2.val <> T4.val AND T3.val <>T4.val
//为T4添加此内容