2011-10-05 85 views
-1
$ids = array(30,30); 



    $items = (array) $db->getRecords('SELECT i.id 
    ,i.num_persons 
    ,i.rating 
    ,i.lat 
    ,i.lng 
    ,i.street 
    ,i.number 
    ,c.title 
    ,c.introduction 
    ,c.text 
    ,c.area 
    ,c.long_term_rental 
    ,c.beds 
    ,c.features 
    ,c.services_and_equipment 
    ,c.terms_and_conditions 
    ,MIN(p.price) as price 
    ,m.url 
    FROM appartments AS i 
    INNER JOIN appartments_content AS c on c.parent_id = i.id 
    INNER JOIN meta AS m on m.id = c.meta_id 
    INNER JOIN appartments_pricing AS p on p.appartment_id = i.id 
    WHERE c.language = ? AND i.hidden = ? AND i.publish_on <= ? AND i.id IN('. implode(',', $ids) .') 
    GROUP BY i.id', 
    array(FRONTEND_LANGUAGE, 'N', FrontendModel::getUTCDate('Y-m-d H:i') . ':00')); 

如何在結果集中兩次(或多次)獲取相同的記錄?在結果中獲得相同的記錄兩次

+4

請勿使用GROUP BY。 – B4NZ41

+3

你的問題沒有意義 –

+0

我想要2個或更多的記錄,如果我在我的$ ids變量中有相同的ID。 –

回答

0

這並不是說很漂亮,但是....

$nestedIds = "select 1 as id union all select 1 union all select 2"; 

'select i.id, i.num_persons, i.rating, i.lat, i.lng, i.street, i.number, 
i.title, i.introduction, i.text, i.area, i.long_term_rental, i.beds, i.features, 
i.services_and_equipment, i.terms_and_conditions, i.price, i.url 
from 
('.$nestedIds.') as un 
inner join 
( 
SELECT i.id, i.num_persons, i.rating, i.lat, i.lng, i.street, i.number, 
c.title, c.introduction, c.text, c.area, c.long_term_rental, c.beds, c.features, 
c.services_and_equipment, c.terms_and_conditions, MIN(p.price) as price, m.url 
FROM appartments AS i 
INNER JOIN appartments_content AS c on c.parent_id = i.id 
INNER JOIN meta AS m on m.id = c.meta_id 
INNER JOIN appartments_pricing AS p on p.appartment_id = i.id 
INNER JOIN as un on un.id = i.id 
WHERE c.language = ? AND i.hidden = ? AND i.publish_on <= ? AND i.id IN (1,1,2) 
GROUP BY i.id 
) as i 
on i.id = un.id;' 

我用ID 1(兩次)和id 2作爲用於說明的實例。我想你必須以編程方式建立「un」嵌套表的列表。

或者,您可以在查詢之外處理它。

希望它有幫助!

Tom

+0

線 'INNER JOIN作爲un.id = i.id' 我應該加什麼未在「as」之前 –

+0

該位需要被創建爲傳遞到查詢中的字符串變量。所以,如果你有,ids 1,1和2,那麼你將不得不創建一個字符串變量='select 1作爲id union all選擇1 union all select 2'。我會編輯我的帖子,試着讓它更清晰 –

相關問題