我遇到问题,不知道如何解决,请帮助我,所以我的数据库中有 2 个表:
dosar
id name date fk_verificator fk_administrator fk_user
user
id name surname is_verificator is_admin
我创建并插入到我的数据库中,在fk_verificator中存储了验证者用户的id,在fk_administrator中存储了管理员用户的id,所以我的问题是可以创建一个查询来获取这个dosar用户表中有 2 个用户(一名是管理员,一名是管理员)或者需要创建一个辅助表?提前谢谢。请帮助我 例如,如果我有:
dosar table:
id name fk_verif fk_admin fk_user
1 dosarNr.1 2 1 1
user
id name surname is_verific is_admin
1 name1 surname1 N Y
2 name2 surname2 Y N
现在在这个选择中我想要得到:
dosar1 name1 surname1 name2 surname2
最佳答案
对于您预期的结果集,您必须使用 dosr 加入用户表两次,以获得管理员和验证记录的人员的名称
Mysql查询
select
d.name,
u1.name name1,
u1.surname surname1,
u1.name name2,
u1.surname surname2
from dosar d
join `user` u1 on(d.fk_admin = u1.id and u1.is_admin = 'Y')
join `user` u2 on(d.fk_verif = u2.id and u2.is_verific = 'Y')
FIDDLE DEMO
事件记录查询
$result=$this->db->select('d.name,
u1.name name1,
u1.surname surname1,
u1.name name2,
u1.surname surname2')
->from('dosar d')
->join("user u1','d.fk_admin = u1.id and u1.is_admin = 'Y'")
->join("user u2','d.fk_verif = u2.id and u2.is_verific = 'Y'")
->get()
->result();
运行简单查询
$sql="select
d.name,
u1.name name1,
u1.surname surname1,
u1.name name2,
u1.surname surname2
from dosar d
join `user` u1 on(d.fk_admin = u1.id and u1.is_admin = 'Y')
join `user` u2 on(d.fk_verif = u2.id and u2.is_verific = 'Y')";
$this->db->query($sql);
关于php - 使用CodeIgniter进行Sql插入、选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25433327/