2011-01-04 6 views
1

내가 사용하는 'AND'MySQL의 경우 문, 예를 들어MySQL의 경우 문

에서 할 수

$d = $mysqli->query("SELECT id_timeslot, date_book, id_beautician 

    ,coalesce(thera_b, 'available') AS thera_b 

    FROM (SELECT t.id_timeslot, p.id_beautician, b.date_book 

    , MAX(CASE b.id_beautician WHEN 2 THEN 'booked' THEN 'booked' ELSE NULL END 
     AND 
     CASE b.date_book WHEN '2011-01-04' THEN 'booked' ELSE NULL END) AS thera_b 

    FROM timeslot as t 
    LEFT JOIN bookslot as b ON b.id_timeslot = t.id_timeslot 
    LEFT JOIN beautician as p ON p.id_beautician = b.id_beautician 
     GROUP BY t.id_timeslot) AS xx"); 

또는 기타 솔루션?

답변

3

이것이 필요한가요?

MAX(CASE WHEN b.id_beautician =2 
    AND b.date_book = '2011-01-04' THEN 'booked' END) AS thera_b 

이것은 searched 경우 포맷 (the docs에서 두 번째)을 사용하며이 어쨌든 암시 적으로 ELSE NULL을 남긴다.

+0

방금 ​​해 보았습니다. 그것은 작동하지 않았다. 다른 생각? – tonoslfx

+0

그러면 무엇을하려고하는지 설명해야합니다. 설명 없이는 작동하지 않으며 우리의 의도를 짐작할 수있는 소스 코드를 제공하는 것이 가장 생산적인 방법은 아닙니다! –

+0

MAX (b.id_beautician = 2 AND b.date_book = '$ search_date'THEN '예약 완료') AS thera_b – tonoslfx