2011-10-18 7 views
0

この検索条件では、利用可能なすべてのアパートメントを見つけることができます。 利用可能なアパートメントには予約番号がありません。利用可能なアパートを入手

は、私が欲しいもの:

:...それは、予約IDを持っており、状況は私もアパートは、最大表示したいキャンセルされますが、私はどのように知っていない場合は
SELECT a.id, a.num_persons, a.rating, a.lat, a.lng, a.street, a.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 
     , m.url 
    FROM appartments AS a 
    INNER JOIN appartments_content AS c on c.parent_id = a.id 
    INNER JOIN meta AS m on m.id = c.meta_id 
    LEFT JOIN appartments_bookings AS b 
      ON (b.appartment_id = a.id 
      AND NOT ((? > b.departure) OR (? < b.arrival)))  
     -- this ? = arrival  that ? = departure 
    WHERE b.id IS NULL 
     AND c.language = ? 
     AND a.hidden = ? 
     AND a.publish_on <= ? 
     AND a.city_id = ? 
     AND a.num_persons >= ? 

    ORDER BY a.num_persons ASC, a.publish_on DESC 
    LIMIT ? OFFSET ?' 

は、私はこれを追加しました
AND b.status != ? OR NOT ((? >= b.departure) OR (? < b.arrival))) WHERE b.order_id IS NULL 

しかし、これはうまくいきません。

+0

あなたの質問には、appartments、appartments_content、およびappartments_bookingsのテーブル定義を含める必要があります。 – jan

+0

データ構造を教えて、今日の私のクリスタルグローブを忘れました:P –

答えて

0

WHERE(b.idがNULLであるか(b.idがNULL AND b.status = 'キャンセル' ではありません)... MySQLの構文を知っているが、あなたのWHERE何かのように句を変更しないでください) AND c.language = etc etc

+0

ありがとう、ありがとう –

関連する問題