Yii gii生成Model类中关联表数据方法

在执行主表和关联表以及字段索引SQL后,
执行下面外键约束SQL
ALTER TABLE `主表名` ADD CONSTRAINT `索引名` FOREIGN KEY (`字段名`) REFERENCES `关联表名` (`关联表字段`)

之后再使用Gii创建Model类时,
便可以自动生成含有hasOne或hasMany的方法,用来读取关联表的数据。

lmnp常用命令

LNMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}

如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart

LNMPA状态管理命令:
LNMPA 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMPA 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMPA1.1状态管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

LAMP状态管理命令:
LAMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LAMP 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}

MySQL复制表中所有uid为4的记录,新建成uid=16的数据

INSERT INTO `表名`(`uid`,……) SELECT 16, …… from 表名 WHERE uid= 4

MySQL 之 slow log

http://blog.csdn.net/jkh753/article/details/11590273

MySql 数据表关联查询

当数据库中有两个表。当我想查询A表中某一字段和B表中的某些字段在一起查出并显示时。要用到联合查询。但前提是两个表中必须包含一个字段,下面请看详细例子。

以日志系统为例,我想查出某人某天的工作。在用户表里查出用户名,在工作表里查出工作和某天。

SELECT a.userName, b.* FROM user as a left join work_log as b on(a.userId=b.userId) where `date`=”2013-07-07″ order by `reorder`

一点心得

小仙刚刚修改了某项目中的一个查询列表显示过慢的问题,用时3天,总体来说,用两个 sql 语句就可以搞定的,一个 sql 是更新整个数据库,另一个修改原有的 sql 。编写代码加数据测试本来可以一天就搞定了,而我在电脑面前苦熬了3天时间啊!!!总结如下,也希望菜鸟们吸取教训,咱们共同进步吧。

一、阻碍我的第一个因素就是:对所做项目的基本流程没有彻底弄懂。这一条就可以直接把小仙我贬下凡间了,原因很简单,小仙跟了这个项目已经很长时间了,同时,也做过这个项目的测试,知道这项目是干啥的,但是,真到了某一个环节的时候就不怎么明白了,还是一知半解。什么也别说了,作为本项目程序员,严重不合格,小仙我愧对领导的培养啊!

二、其二,本小仙菜鸟一个,初来咋到的,程序思想还没有形成,那就像修仙者丹田之内连个气儿都没有是一个样的。所以我要从头学起了,不是你掌握了某一门语言你就是一位合格的程序员了,最基本的程序员得有思想!  思想!  思想很重要。身为程序员,在做某一个项目或项目中的某一个功能之前,首先,应该分析分析该功能的目的是啥,怎么实现,如何解决,在脑海里一定要有整体的思路,先做哪个,再做哪个,分析结束;然后,习惯性的画一张流程图,把功能从头到尾如何实现的阐述明白;那最后就是编码了,如果跳过“首先”和“然后”直接进行编码,那就像我一样,做出来的东西,漏洞百出,连功能的目的都达不到,熟话说,磨刀不费砍材工,在没有成为“大湿”之前,还是按部就班的“首先-然后-最后”吧。

三、前两个因素,可能也是菜鸟们的通病,要想脱离菜鸟团,必须养成良好的编程习惯啊!习惯可以养成,但还有一个问题,功能可以实现,但是,这是不是最好的?有木有比这更好的?小仙说有,因为编程是个细腻的工程,盖个楼,少几粒沙子不重要,但是,一大堆的程序里,因为几粒沙子就可能多走了几步道儿,也有可能走歪道儿啊!我们在编写代码的时候应该把所有可能出现的问题及无关的条件都要考虑进来,程序里该不要的不要,必须写的一定要精简,嗯!

好了,大家比我强,认识的比我多,话不多说,其中有不妥之处,就看在小仙依然很菜的份上,轻轻吐槽啊?!希望可以帮助和小仙一样正在长身子的初学者和菜鸟团,我们菜鸟先分!!!

小仙想说,这是一个技术博客,那么,我用到的技术就和大家分享一下吧!

|—————————————--tab1(表)-—————————————|

id(主键)                          submitCnt(提交次数)                       lastTime(最后一次提交时间)

1                                                    0                                                         0

|—————————————--tab2(表)-————————————–|

id(主键)                       tab1_id(表tab1的id)                               createTime(创建时间)

1                                            1                                                         2013-07-16

2                                            1                                                         2013-07-17

3                                            1                                                         2013-07-18

我要实现的功能就是:统计  表tab2  中  tab1_id  出现的次数,并记录在  表tab1submitCnt(提交次数)  字段里,还有,统计  表tab2  中关于  tab1_id createTime(创建时间)字段里,最后一次创建的时间,并记录在 表tab1 的  lastTime(最后一次提交时间) 字段里,用一条  sql  语句搞定。

update tab1 b, (select  a.tab1_id as tid, count(a.id) as bcnt, max(a.createTime) as lastime

from  tab2  a ,  tab1   b

where  a.tab1_id  =  b.id

group  by  tid)  c

set  b.submitCnt=c.bcnt,b.lastTime= c.lastime

where b.id=c.tid;

 

1234