我有一种情况,其中属性表包含地址ID(来自g_addresses表),而申请人表还包含来自g_addresses的地址ID.我想一起加入这些,但选择表格中的所有字段.
我知道使用'as'来为字段创建别名,但有没有办法为整个表生成别名?
SELECT *
FROM (`reference`)
LEFT JOIN `applicants` ON `applicants`.`id` = `reference`.`applicant_id`
LEFT JOIN `g_people` applicant_person ON `applicant_person`.`id` = `applicants`.`person_id`
LEFT JOIN `g_addresses` applicant_address ON `applicant_address`.`id` = `applicants`.`address_id`
LEFT JOIN `properties` ON `properties`.`id` = `reference`.`property_id`
LEFT JOIN `g_addresses` property_address ON `property_address`.`id` = `properties`.`address_id`
WHERE `reference`.`id` = 4
Run Code Online (Sandbox Code Playgroud)
这会产生一个只包含一个地址行但不包含两者的结果.返回的行是最后一个连接的行而不是之前的行,表示它在返回时被覆盖.
我有一组以特定顺序传递的ID,需要保留.我从几个左连接查询与每个ID相关的数据.从搜索中返回ID,因此必须保留顺序以使结果有效(否则会使搜索变得毫无意义).
我的代码看起来像;
$this->db->where_in('id', $array_of_ordered_ids);
Run Code Online (Sandbox Code Playgroud)
例如 -
$this->db->where_in('id', array(4,5,2,6));
Run Code Online (Sandbox Code Playgroud)
将按顺序返回结果2,4,5,6.
我希望它保留订单并返回结果4,5,2,6.
谢谢,
我们希望将序列化对象与唯一的内部ID一起存储在表中.我们只想读/写/(很少)更新行.我们永远不会只是ID与序列化字段进行交互.我们正在使用InnoDB,
首先;
将序列化存储为文本类型字段是否正确?
其次;
如果我们不直接与r/w之外的序列化字段进行交互,它会影响我们数据库的性能吗?
最后;
将序列化对象存储在我们的文件系统中会更好吗?
为了深入了解我们为什么首先存储它们,我们从供应商处收到一个对象,用户需要选择几个选项,我们需要使用修改后的(选定)组件发回EXACT对象.