2013-04-03 2 views
1
SELECT 
    q1.user_id,q2.count,q2.total,q1.choice 
FROM  
    (
    SELECT 
     "table1"."user_id" as user_id,"table2"."choice" as choice 
    FROM 
     "table1", "table2" 
    WHERE 
     "table1"."user_id" = table2.ref_id     
    AND 
     "table1"."active" = 1 
    )q1 
LEFT OUTER JOIN   
    (
    SELECT 
     count(table1.*) as count, SUM(table2.add1) as total,table1.user_id as user_id 
    FROM 
     "table1", "table2" 
    WHERE     
     "table1"."type" = 1    
    AND 
     table1"."some_id" IN(SELECT user_id FROM "table2", "table3" WHERE "table3"."user_id" = table3.refid)     
    group by 
     "table2"."user_id" 
    )q2   
ON 
    q2.user_id=q1.user_id 
ORDER BY 
    q2.count ASC 

У меня есть один такой запрос. Он отлично работает в db. Но не знаю, как записать это в codeigniter с помощью подзапросов. Или я могу получить другие результаты?Как написать команды выбора соединения в воспламенителе кода

ответ

1

вы можете использовать $this->db->query() для этого ..

doc here

$sql='SELECT 
    q1.user_id,q2.count,q2.total,q1.choice 
FROM  
    (
    SELECT 
     "table1"."user_id" as user_id,"table2"."choice" as choice 
    FROM 
     "table1", "table2" 
    WHERE 
     "table1"."user_id" = table2.ref_id     
    AND 
     "table1"."active" = 1 
    )q1 
LEFT OUTER JOIN   
    (
    SELECT 
     count(table1.*) as count, SUM(table2.add1) as total,table1.user_id as user_id 
    FROM 
     "table1", "table2" 
    WHERE     
     "table1"."type" = 1    
    AND 
     table1"."some_id" IN(SELECT user_id FROM "table2", "table3" WHERE "table3"."user_id" = table3.refid)     
    group by 
     "table2"."user_id" 
    )q2   
ON 
    q2.user_id=q1.user_id 
ORDER BY 
    q2.count ASC'; 

$result=$this->db->query($sql); 
+0

и вы будете использовать $ this-> db-> запрос(), потому что ActiveRecord реализации КИ в настоящее время не поддерживает подзапросы. – jcorry

Смежные вопросы