Mysql:当表中的结果为1行时返回0,其他表结果为2行

时间:2012-08-23 04:37:38

标签: mysql

如何显示结果

Temp | Order | Payment
A | 5 | 3
A | 4 | 0
B | 2 | 2
B | 0 | 3
C | 3 | 0

with:first_table:

Name | Description
A | Description A
B | Description B
C | Description C

second_table:

Name | order
A | 5
A | 4
B | 2
C | 3

third_table:

Name | Payment
A | 3
B | 2
B | 3

含义: Name = A有2个顺序(值:4,5)。 名称= A有1个订单(值:3) 结果我想显示:

Name | Order | Payment
A | 4 | 3 |
A | 5 | 0 |

有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

您需要使用JOIN

在您的示例中,订单A5没有付款,因此您应该使用LEFT JOIN,这将导致该行的付款为NULL(A5)。 LEFT JOIN基本上意味着“从第一个表中选择行,如果第二个表中没有匹配,则将NULL设置为”。

只需对字段名称中的second_table和third_table执行LEFT JOIN,其中Name = a。这是一个非常基本的例子,所以我不会给你确切的查询,你应该自己学习。