【发布时间】:2015-10-02 18:43:50
【问题描述】:
我需要一些关于优化 SQL 查询结构的帮助。我有这样的模型:
我正在尝试在表 NON_NATURAL_PERSON 和 NNP_NAME 之间进行某种连接。因为我在表NNP_NAME 中有很多人的名字,所以我不能一对一的SELECT * from NON_NATURAL_PERSON inner join NNP_NAME 等。这样我就会为一个人的每个名字获得额外的行。
表格中的数据:
如何扩展此查询以获取下图中标记为红色的行?我想要的查询条件是:只有在存在时才加入 typeA 的名称。如果不是,则加入typeB的名称。如果都不存在 typeC 的连接名称。
SELECT nnp.ID, name.NAME, name.TYPE
FROM NON_NATURAL_PERSON nnp
INNER JOIN NNP_NAME name ON (name.NON_NATURAL_PERSON = nnp.ID)
【问题讨论】:
-
您标记
mysql和h2的任何特殊原因? -
@sstan 不,我的目标是通用 SQL。我的测试平台是 MySQL 和 H2