Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL双表查询_Mysql - Fatal编程技术网

Mysql SQL双表查询

Mysql SQL双表查询,mysql,Mysql,我在MySQL数据库中有两个表。我想用这两张表找出基于性别的血型计数 我可以用一张表来计算性别,但不能用两张表来计算 |-----------------------------------------------------| | DONOR | |-------|-------|----------|--------|------|----------| | DID | NAME | GEND

我在MySQL数据库中有两个表。我想用这两张表找出基于性别的血型计数

我可以用一张表来计算性别,但不能用两张表来计算

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

你能解释一下输出的逻辑吗?我只需要用两个表找到基于性别的血型计数。你能解释一下输出的逻辑吗?我只需要用两个表找到基于性别的血型计数。