【发布时间】:2018-03-20 12:48:21
【问题描述】:
查询应该输出的是sp_archive.SP_ID、sp_archive.SP_Title、sp_archive.SP_Type、Account.Account_FirstName、Account.MiddleName和Account.LastName。
name 应该是不同的列
【问题讨论】:
标签: mysql sql codeigniter
查询应该输出的是sp_archive.SP_ID、sp_archive.SP_Title、sp_archive.SP_Type、Account.Account_FirstName、Account.MiddleName和Account.LastName。
name 应该是不同的列
【问题讨论】:
标签: mysql sql codeigniter
应该这样做:
select sp_archive.SP_ID, sp_archive.SP_Title, sp_archive.SP_Type,
Account.Account_FirstName, Account.MiddleName, Account.LastName from
SP_ARCHIVE join Proponent using (SP_ID) join Account using
(Account_ID);
【讨论】:
你可以试试这个查询来解决你的问题:
$this->db->select('sp_archive.SP_ID, sp_archive.SP_Title, sp_archive.SP_Type, Account.Account_FirstName, Account.MiddleName, Account.LastName');
$this->db->from('Proponent');
$this->db->join('sp_archive', 'sp_archive.SP_ID=Proponent.SP_ID ', 'left');
$this->db->join('Account', 'Account.Account_ID = Proponent.Account_ID', 'left');
$query = $this->db->get();
$result = $query->result();
echo "<pre>";
print_r($result);
exit;
我希望它会有所帮助。
【讨论】:
您可以直接加入 Account 和 SP_ARCHIVE 与 Proponent
SELECT `sp_archive`.`SP_ID`,
`sp_archive`.`SP_Title`,
`sp_archive`.`SP_Type`,
`Account`.`Account_FirstName`,
`Account`.`MiddleName`,
`Account`.`LastName`
FROM `Proponent`
LEFT JOIN `Account`
ON `Account`.`Account_ID` = `Proponent`.`Account_ID`
LEFT JOIN `SP_ARCHIVE`
ON `SP_ARCHIVE`.`SP_ID` = `Proponent`.`SP_ID`
【讨论】:
查找 CI 查询生成器 https://www.codeigniter.com/userguide3/database/query_builder.html
创建一个模型,然后创建一个函数来放置您的查询:
$select = 'av.SP_ID, sp_archive.SP_Title, av.SP_Type, a.Account_FirstName, a.MiddleName,a.LastName';
$results = $this->db->select($select)
//if you want it to be an inner join remove 3rd param from join
->join('sp_archive av', 'av.SP_ID=p.SP_ID ', 'left');
->join('Account a', 'a.Account_ID = p.Account_ID', 'left')
//aliase tabel names
->get('Proponent p')->result();
return $results;
【讨论】: