انجمن پشتیبانی فارسی فریم ورک کیک پی اچ پی - cakephp
تبدیل کوئری SQL به کیک - نسخه قابل چاپ

+- انجمن پشتیبانی فارسی فریم ورک کیک پی اچ پی - cakephp (http://forum.cakephp.ir)
+-- انجمن: پرسش و پاسخ و رفع اشکال - نسخه ۳ (http://forum.cakephp.ir/forum-37.html)
+--- انجمن: کنترولر ها (Controllers) (http://forum.cakephp.ir/forum-40.html)
+--- موضوع: تبدیل کوئری SQL به کیک (/thread-1424.html)



تبدیل کوئری SQL به کیک - akrami - 2015/02/07

با سلام
می خوام این کوئری SQL رو به کیک تبدیل کنم.
کمک کنید
کد:
SELECT entry_id,sys_date,entry_date,exit_time,company,person,ent_entry.confirmer as confirmer_username,ent_entry.fin_confirmer as fin_confirmer_username,work,es.name as site,a.name as liable,c.name as confirmer,`confirmer_date`,b.name as fin_confirmer, fin_confirmer_date
FROM ent_entry
LEFT JOIN ent_site es ON ent_entry.site=es.site_id
LEFT JOIN user a ON ent_entry.liable=a.username
LEFT JOIN user b ON ent_entry.fin_confirmer=b.username
LEFT JOIN user c ON ent_entry.confirmer=c.username
WHERE ent_entry.entry_date < DATE_ADD(CURDATE(), INTERVAL 1 DAY) && ent_entry.entry_date >= CURDATE() && (ent_entry.exit_time >= CURTIME() || ent_entry.confirmer IS NOT NULL)
ORDER BY entry_date desc

که ساختار هر کدوم از جدولا به شکل زیر هست:
جدول user
کد:
CREATE TABLE IF NOT EXISTS `user` (
 `username` varchar(5) NOT NULL,
//...
 `name` varchar(128) NOT NULL,
 PRIMARY KEY (`username`)
)

جدول ent_entry
کد:
CREATE TABLE IF NOT EXISTS `ent_entry` (
 `entry_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `sys_date` datetime NOT NULL,
 `entry_date` datetime NOT NULL,
 `exit_time` time NOT NULL,
 `company` varchar(64) NOT NULL,
 `person` varchar(128) NOT NULL,
 `work` varchar(256) NOT NULL,
 `site` int(11) unsigned NOT NULL,
 `liable` varchar(5) NOT NULL,
 `confirmer` varchar(5) DEFAULT NULL,
 `confirmer_date` datetime DEFAULT NULL,
 `fin_confirmer` varchar(5) DEFAULT NULL,
 `fin_confirmer_date` datetime DEFAULT NULL,
 PRIMARY KEY (`entry_id`),
 KEY `site` (`site`),
 KEY `liable` (`liable`),
 KEY `confirmer` (`confirmer`)
)

جدول ent_site
کد:
CREATE TABLE IF NOT EXISTS `ent_site` (
 `site_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(64) NOT NULL,
 PRIMARY KEY (`site_id`)
)



RE: تبدیل کوئری SQL به کیک - saleh - 2015/02/08

اینها جدول ها مدل دارند یا فقط همین کویری رو نیاز دارید؟ اگر همین کويری هست. میتونید ویو بسازید و به عنوان یک تیبل فراخوانی کنید.

یا می تونید از Query Builder  استفاده کنید. 
این صفحه رو بخونید مشکلتون رو میتونید به راحتی حل کنید.

کد:
http://book.cakephp.org/3.0/en/orm/query-builder.html



RE: تبدیل کوئری SQL به کیک - aminmajidi12 - 2016/04/01

ممنون بسیار عالی موفق باشید Wink