如何根据同一个值在另一个表中的行为从一个表中选择值?

时间:2014-10-08 20:35:31

标签: mysql sql database

请帮助我...如果我有这些表格和列:TABLE1IDTABLE2FOO和{{1两者都包含不同的ID,这些ID也都显示在BAR的{​​{1}}列中。

我想写一个ID查询,以便从TABLE1 SELECT获取所有ID,但是在这种情况下:

例如,如果ID列的TABLE1列下的101行的数字(ID),则会从X中选择ID 101 FOO除以TABLE2 Y101列下{id}}列所显示的行数(BAR)时,会得到小于某个值的结果

因此,如果TABLE2,则查询将选择ID X / Y < 3

这样的查询如何看起来可以在一个长查询中完成?

谢谢!

1 个答案:

答案 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