2011-12-15 12 views
-1

これは私のmysqlクエリです。私が抽出したいのは、今日も含めて過去6日間に挿入されたすべての行。ここで私は、この非常なステートメントでAND EXTRACT(DAY FROM departure)の代わりに、ここでORをしたい私のクエリ複数のBETWEEN&mySqlの複数AND間違った回答を返す

$user_ids = $_SESSION['user_ids']; //its array 
    $cs_user_ids =implode(",",$user_ids); 


    SELECT fb_user.name,schedule.id,schedule.location,schedule.arrival, 
    schedule.departure,schedule.notes,schedule.lat, 
    schedule.lon,schedule.who_can_c_me 
    FROM schedule,fb_user 
    WHERE EXTRACT(DAY FROM arrival) 
    BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) 
    AND  EXTRACT(DAY FROM CURDATE()) 
    AND  EXTRACT(DAY FROM departure) 
    BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) 
    AND  EXTRACT(DAY FROM CURDATE()) 
    AND  fb_user.fb_id = schedule.fb_id 
    AND fb_user.fb_id IN($cs_user_ids) 

です。 到着またはdepartureの日付が必要ですが、ORとは動作しません。ANDと連携しており、その必要はありません。私の質問には何が間違っていますか?私は()

答えて

-2

が、これは試してみてください括弧ブラケット

"SELECT fb_user.name,schedule.id,schedule.location,schedule.arrival,schedule.departure,schedule.notes,schedule.lat,schedule.lon,schedule.who_can_c_me 
    FROM schedule,fb_user 
    WHERE EXTRACT(DAY FROM arrival) 
    (BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) AND EXTRACT(DAY FROM CURDATE())) 

    OR  
    EXTRACT(DAY FROM departure) 
    (BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) AND EXTRACT(DAY FROM CURDATE())) 

    AND fb_user.fb_id = schedule.fb_id 
    AND fb_user.fb_id IN($cs_user_ids)" 
+1

これはこれを実現するとは思わない:***到​​着または出発日***。それは? –

+0

いいえ、否定投票の回答が受け入れられました:-) – Pratik

+1

woow now答えが間違っていると-1を与えると、少なくともそれを修正してください。 – Pratik

0

に問題がこれが動作する必要がありますね:

SELECT fb_user.name,schedule.id,schedule.location,schedule.arrival,schedule.departure,schedule.notes,schedule.lat,schedule.lon,schedule.who_can_c_me 
    FROM schedule,fb_user 
    WHERE ((DATE(arrival) BETWEEN DATE_SUB(CURDATE(),INTERVAL 6 DAY) AND CURDATE()) 
    OR (DATE(departure) BETWEEN DATE_SUB(CURDATE(),INTERVAL 6 DAY) AND CURDATE())) 
    AND fb_user.fb_id = schedule.fb_id AND fb_user.fb_id IN($cs_user_ids) 

私は抽出DAYの使用を考える:

SELECT 
     fb_user.name,schedule.id,schedule.location,schedule.arrival,schedule.departure, 
     schedule.notes,schedule.lat,schedule.lon,schedule.who_can_c_me 
FROM 
     schedule,fb_user 
WHERE  
    (
    (EXTRACT(DAY FROM arrival) BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) AND EXTRACT(DAY FROM CURDATE())) 
    OR 
    (EXTRACT(DAY FROM departure) BETWEEN EXTRACT(DAY FROM DATE_SUB(CURDATE(),INTERVAL 6 DAY)) AND EXTRACT(DAY FROM CURDATE())) 
    ) 
    AND  
     fb_user.fb_id = schedule.fb_id 
    AND 
     fb_user.fb_id IN($cs_user_ids) 
+0

私はこれを試してみましょう.. –

0

を使用して、この方法を試してみてください第1または第2のような日にこの予期しない結果を引き起こします。

関連する問題