请帮助我...如果我有这些表格和列:TABLE1
列ID
和TABLE2
列FOO
和{{1两者都包含不同的ID,这些ID也都显示在BAR
的{{1}}列中。
我想写一个ID
查询,以便从TABLE1
SELECT
获取所有ID,但是在这种情况下:
例如,如果ID
列的TABLE1
列下的101
行的数字(ID
),则会从X
中选择ID 101
FOO
除以TABLE2
Y
列101
列下{id}}列所显示的行数(BAR
)时,会得到小于某个值的结果
因此,如果TABLE2
,则查询将选择ID X / Y < 3
。
这样的查询如何看起来可以在一个长查询中完成?
谢谢!
答案 0 :(得分:3)
您可以使用subqueries in the FROM clause加入。
子查询q1
计算foo列中foo和id列中的ID。
SELECT foo as id
FROM
(SELECT foo, COUNT(foo) X FROM Table2 WHERE FOO in
(SELECT id FROM Table1) GROUP BY foo) q1,
(SELECT bar, COUNT(bar) Y FROM Table2 WHERE bar in
(SELECT id FROM Table1) GROUP BY bar) q2
WHERE q1.foo=q2.bar and X/Y < 3