【发布时间】:2016-04-26 15:12:12
【问题描述】:
看到我想从各个表中为 id 选择文本(名称)以用于显示目的。
*忽略分类的拼写错误
在这里,我加入了角色名称(列)的角色表、名称(列)的分类表和名称(列)的对象表。
在我的上表中,classi_id 和 object_id 都显示为“0”。所以使用我的内部连接语句它只返回两行没有'0'值。
我想在我的查询中放置一个条件,它只在分类和对象表上对那些没有“0”值的行进行内部联接,但我希望返回所有 5 行具有各自的角色.role_name、分类.name和 object.name。
请在下面查看我的查询:
*我正在为此查询使用数据库包装器
$data = $this->db->select("SELECT * FROM role_linkto INNER JOIN roles ON role_linkto.role_id = roles.role_id INNER JOIN clasification ON role_linkto.classi_id = clasification.id INNER JOIN object ON role_linkto.object_id = object.id ");
return $data;
linkto_id 1
-role_name [超级管理员]
-classification.name[系统]
linkto_id [2]
-role_name [Agency_Admin]
-classification.name[机构]
linkto_id [3]
-role_name [合同管理员]
-classification.name[部门]
-object.name[合约]
linkto_id [4]
-role_name [合同所有者]
-object.name[合约]
linkto_id [5]
-role_name [供应商]
-classification.name[机构]
-object.name[合约]
【问题讨论】:
-
我认为您可能正在寻找
LEFT JOIN,因为您想保留所有 5 行并应用额外的条件。你能把你想要的结果也放在问题中吗? -
@NorbertvanNobelen,在我的帖子中添加了预期结果