Mysql SQL双表查询
我在MySQL数据库中有两个表。我想用这两张表找出基于性别的血型计数 我可以用一张表来计算性别,但不能用两张表来计算Mysql SQL双表查询,mysql,Mysql,我在MySQL数据库中有两个表。我想用这两张表找出基于性别的血型计数 我可以用一张表来计算性别,但不能用两张表来计算 |-----------------------------------------------------| | DONOR | |-------|-------|----------|--------|------|----------| | DID | NAME | GEND
|-----------------------------------------------------|
| DONOR |
|-------|-------|----------|--------|------|----------|
| DID | NAME | GENDER | CITY | BG | AMOUNT |
|-------|-------|----------|--------|------|----------|
| 1 | A1 | F | C1 | AB+ | 7 |
|-------|-------|----------|--------|------|----------|
| 2 | A2 | F | C2 | A+ | 2 |
|-------|-------|----------|--------|------|----------|
| 3 | A3 | M | C1 | AB+ | 5 |
|-------|-------|----------|--------|------|----------|
| 4 | A4 | F | C3 | AB+ | 3 |
|-------|-------|----------|--------|------|----------|
| 5 | A5 | M | C1 | A- | 4 |
|-------|-------|----------|--------|------|----------|
输出
F AB+ 4
F A+ 1
M AB+ 1
M A- 2
F A- 1
M B+ 1
你能帮我查询一下吗?我不擅长这种查询。
我只进行了单表查询。您需要对两个表和聚合进行全部联合:
select t.gender, t.bg, count(*)
from (
select gender, bg from donor
union all
select gender, bg from acceptor
) t
group by t.gender, t.bg
对于2个表和聚合,您需要全部联合:
select t.gender, t.bg, count(*)
from (
select gender, bg from donor
union all
select gender, bg from acceptor
) t
group by t.gender, t.bg
你能解释一下输出的逻辑吗?我只需要用两个表找到基于性别的血型计数。你能解释一下输出的逻辑吗?我只需要用两个表找到基于性别的血型计数。