看到我想从各个表中选择id的文本(名称)以便显示。
*忽略分类的拼写错误
在这里,我将与role_name(列)的角色表,名称(列)的分类表和名称(列)的对象表联接。
在我的上表中,有' 0' 0看到classi_id和object_id。因此,使用我的内部连接语句,它只返回两行没有' 0'值。
我想在我的查询中添加一个条件,其中只有对于没有' 0'的那些行的clasificationa和对象表上的INNER JOIN。值,但我希望返回具有各自roles.role_name,clasification.name和object.name的所有5行。
请查看我的查询:
*我正在使用数据库包装器进行此查询
$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 [Super_Admin]
-classification.name [系统]
linkto_id [2]
-role_name [Agency_Admin]
-classification.name [机构]
linkto_id [3]
-role_name [Contract_Admin]
-classification.name [系]
-object.name [合同]
linkto_id [4]
-role_name [Contract_Owner]
-object.name [合同]
linkto_id [5]
-role_name [供应商]
-classification.name [机构]
-object.name [合同]
答案 0 :(得分:1)
在2个表上添加带有0s
的条件"SELECT * FROM role_linkto INNER JOIN roles ON role_linkto.role_id = roles.role_id LEFT JOIN clasification ON role_linkto.classi_id = clasification.id AND clasification.id <> '0' LEFT JOIN object ON role_linkto.object_id = object.id AND object.id <>'0' "