Php 编码点火器db->;选择自动处理mysql连接 桌子
问题是我可以设置Php 编码点火器db->;选择自动处理mysql连接 桌子,php,mysql,codeigniter,activerecord,left-join,Php,Mysql,Codeigniter,Activerecord,Left Join,问题是我可以设置codeigniter当我 ID|owner_id|work_id|lorem|etc| 1 |00123 | 00213 |XXXXX|XXX| 2 |00124 | 00213 |XXXXX|XXX| owner_id (fk) owners.id (owners[id,name,etc]) work_id (fk) work.id (work[id,name,etc]) 它会自动处理连接,因为该表已经包含fk ref?或者我必须包括join('owner','
codeigniter
当我
ID|owner_id|work_id|lorem|etc|
1 |00123 | 00213 |XXXXX|XXX|
2 |00124 | 00213 |XXXXX|XXX|
owner_id (fk) owners.id (owners[id,name,etc])
work_id (fk) work.id (work[id,name,etc])
它会自动处理连接,因为该表已经包含fk ref?或者我必须包括join('owner','owner.id=table.owner\u id)
实际上,我想要的是,当我选择一个包含fk的表时,这个fk列将被ref行中的一列替换,只需在ref表上传递列名,而不必担心在我的模块中为每个查询创建特定的函数
我当前的解决方案:
是为每个包含关系的表创建一个视图,并用所需的ref值替换所有fk列,但由于我有6个表,其中5个表带有fk,所以我现在在db中有6个表和5个视图(11个表),这对我来说非常混乱,那么有没有更聪明的方法呢?我认为您对FK是什么以及它在表中的作用有些困惑 FK约束在数据存在时授予数据完整性,并在表中关联数据。它没有加入任何东西 如果要跨相关表选择记录,可以使用
select(table.*,work.name as work,owners.name as owner) from table
或
是的,您需要告诉CodeIgniter执行这些查询我认为您对FK是什么以及它在表中的作用有些困惑 FK约束在数据存在时授予数据完整性,并在表中关联数据。它没有加入任何东西 如果要跨相关表选择记录,可以使用
select(table.*,work.name as work,owners.name as owner) from table
或
是的,您需要告诉CodeIgniter执行这些查询如果是这样,那么设置关系的唯一实际好处就是级联操作!另一方面,我只需执行两个单独的select查询,第一个是获取主行,第二个是获取所需的ref值,使用simple where id=fk!是这样吗?或者您可以使用一个join语句在一个查询中同时执行这两个操作,如果这样,设置关系的唯一实际好处就是级联操作!另一方面,我只需执行两个单独的select查询,第一个是获取主行,第二个是获取所需的ref值,使用simple where id=fk!是这样吗?或者你可以使用一个join语句在一个查询中同时执行这两个操作。我要补充的是,在使用CodeIgniter之前用SQL构造查询是一个很好的实践,这样写代码就更容易了。我要补充的是,在使用CodeIgniter之前用SQL构造查询是一个很好的实践,这样写代码就更容易了。
SELECT * FROM table1 JOIN table2 ON table1.K1 = table2.FK1