Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 编码点火器db->;选择自动处理mysql连接 桌子_Php_Mysql_Codeigniter_Activerecord_Left Join - Fatal编程技术网

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