2011-01-04 7 views
1

puis-je utiliser 'ET' dans la déclaration de cas mysqlmysql cas déclaration

par exemple:

$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"); 

ou toute autre solution?

Répondre

3

Est-ce ce que vous cherchez?

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

Il utilise le format searched de cas (deuxième un dans the docs) et laisse le ELSE NULL comme cela est implicite de toute façon.

+0

Je viens de le tester. ça n'a pas marché. une autre idée? – tonoslfx

+0

Vous devez expliquer ce que vous essayez de faire ensuite. Donner du code source qui ne fonctionne pas sans explication et nous laisser deviner votre intention n'est probablement pas l'approche la plus productive! –

+0

MAX (cas où b.id_beautician = 2 ET b.date_book = '$ search_date' ALORS 'réservé' END) Comme thera_b – tonoslfx