小编the*_*way的帖子

MySQL查询以获得具有限制的众多查询的"交集"

假设我有一个mySQL表(用户),其中包含以下字段:

userid  
gender  
region  
age  
ethnicity  
income
Run Code Online (Sandbox Code Playgroud)

我希望能够根据用户输入的数量返回总记录数.此外,他们还将提供额外的标准.

在最简单的例子中,他们可能会要求1000条记录,其中600条记录应该是性别="男性",400条记录中性别="女性".这很简单.

现在,再往前走一步.假设他们现在想要指定Region:

GENDER  
    Male:   600 records  
    Female: 400 records  

REGION  
    North:  100 records  
    South:  200 records  
    East:   300 records  
    West:   400 records
Run Code Online (Sandbox Code Playgroud)

同样,只应返回1000条记录,但最终必须有600名男性,400名女性,100名北方人,200名南方人,300名东方人和400名西方人.

我知道这不是有效的语法,但使用伪mySQL代码,它有希望说明我正在尝试做什么:

(SELECT * FROM users WHERE gender = 'Male' LIMIT 600  
UNION  
SELECT * FROM users WHERE gender = 'Female' LIMIT 400)

INTERSECT

(SELECT * FROM users WHERE region = 'North' LIMIT 100  
UNION  
SELECT * FROM users WHERE region = 'South' LIMIT 200  
UNION  
SELECT * FROM users …
Run Code Online (Sandbox Code Playgroud)

mysql sql database select inner-join

43
推荐指数
2
解决办法
1616
查看次数

标签 统计

database ×1

inner-join ×1

mysql ×1

select ×1

sql ×1