我有三个表, PERSON , TYPE , PROJECT ,如下所示 PERSON 包含4列:
ID, NAME, TYPE_ID, PROJECT_ID
,PROJECT_ID
默认值为NULL。
TYPE 包含2列:
ID, NAME
PROJECT 包含2列:
ID, NAME
PERSON 表中的第一条记录是
| ID | NAME | TYPE_ID | PROJECT_ID |
+----+------+---------+------------+
| 1 | Ryan | 1 | NULL |
现在我希望得到结果为person.id,person.name,type.name,project.name as
1,Ryan,输入名称,“空”以下查询。
select person.*,type.name,project.name from person left join (type , project) ON (type.id = person.type AND project.id = person.project) where person.`id`= 1
我无法得到类型和项目的正确结果。
答案 0 :(得分:1)
我认为这就是你要做的事情
SELECT
a.ID,
a.NAME,
b.NAME,
c.NAME
FROM
PERSON a LEFT JOIN TYPE b ON (b.ID = a.TYPE_ID)
LEFT JOIN PROJECT c ON (c.ID = a.PROJECT_ID)
我不确定它在Mysql中是如何工作的,但我认为它应该与Oracle
几乎相同