yii2单表内字段关联查询该怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii2单表内字段关联查询该怎么做相关的知识,希望对你有一定的参考价值。

参考技术A 1,使用sqldatasources控件来关联gridview,只需设置一下属性,没上面代码就可以实现显示数据。 2,查询语句查询返回一个数据集,然后赋值给gridview的datasource属性 参考技术B 如下:
设置JavaEdit的内容:
JavaDialog("Add NE").JavaEdit("NE Name").object.setText("NE1")
读取JavaEdit的内容:
Msgbox JavaDialog("Add NE").JavaEdit("NE Name").object.getText()本回答被提问者采纳

MySQL子查询

分类:

多表关联或者表内字段关联时,或做相似功能判断时,往往会使用子查询来解决相应问题

1. 无关子查询:

 

内查询没有用到外查询的列,而且内查询可以单独运行.

 

2. 相关子查询:

 

内查询使用了外查询的列,而且内查询不能单独运行.

 

子查询的特点

子查询很灵活,可以解决很多其他查询方式不能解决的问题

 

子查询效率很低,其中相关子查询效率最低

 

子查询嵌套的层数越多,则效率越低

 

为什么相关子查询的效率极其低下?

 

内查询用到了外查询的列,每次查询行记录时都会迭代表格中

 

每一行的行记录,而这种迭代中产生的值都是动态生成的.

 

结论:

 

性能排序/优先使用

关联/分组查询>无关子查询>相关子查询

 

找出各个部门中大于他所在部门平均工资的员工名和工资

 

mysql>select e.first_name,e.salary from s_emp e

      where e.salary>(select avg(e1.salary) from s_emp e1         where e1.dept_id = e.dept_id);

1

2

e.id = dept_id = 41

确定e是否能够被查询出来,e.salary>select avg(e1.salary) from s_emp   e1 where e1.dept_id = 41

1

2

找出职称相同的员工

 

mysql>select first_name from s_emp where title

      in (select title from s_emp group by title having       count(*)>=2);

1

2

exists和not exists

在子查询中,使用在where字句,它只关心条件是否有存在的可能,

 

如果有可能,则返回true,反之则返回false

 

not exists与exists正好相反

 

找出与’Ben’同部门的员工

 

mysql>select e.first_name,e.dept_id from s_emp e

      where exists

      (select 1 from s_emp e1 where e1.first_name=‘Ben‘ and

      e.dept_id = e1.dept_id) and e.first_name<>‘Ben‘;

1

2

3

4

找出各个部门工资排名前二的员工

 

mysql>select e.first_name,e.salary,e.dept_id from s_emp e

      where exists

      (select 1 from s_emp e1 where e.dept_id = e1.dept_id and e1.salary>e.salary having count(*)<=1);

 

3

mysql>select e.first_name,e.salary,e.dept_id from s_emp e

      where not exists

      (select 1 from s_emp e1 where e.dept_id = e1.dept_id and e1.salary>e.salary having count(*)>1);

 

解题思路:本部门中比’我’工资高的员工不超过一个

 

找出各个部门工资最高的员工,解题思路:本部门中比’我’工资高的人没有*

 

mysql>select e.first_name,e.salary,e.dept_id from s_emp e

      where not exists

      (select 1 from s_emp e1 where e.dept_id = e1.dept_id

      and e1.salary>e.salary hav

以上是关于yii2单表内字段关联查询该怎么做的主要内容,如果未能解决你的问题,请参考以下文章

python开发mysql:表关系&单表简单查询

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

mysql数据库,我想查a表所有的字段还有b表的某一个字段,请问我要怎么做关联查询

yii2中关联查询

EF中怎样和从表中的Unique字段做外键关联

MySQL子查询