SQL-запрос - Где я иду не так, как надо?

Попробуйте этот код. Это добавит оттенок к фоновому ресурсу.

button.setBackgroundTintList(getResources().getColorStateList(R.color.yourColor));
5
задан Andomar 12 June 2009 в 12:59
поделиться

4 ответа

SELECT op.id 
FROM opening op 
WHERE op.id NOT IN 
     (SELECT b.openingid 
      FROM booking b 
      WHERE b.bookingtype='C')

с изменением даты:

SELECT op.id 
FROM opening op 
WHERE op.id NOT IN 
     (SELECT b.openingid 
      FROM booking b 
      WHERE (b.arrivalDate BETWEEN '2009/06/20' AND '2009/06/27') 
             OR 
            (b.departureDate BETWEEN  '2009/06/20' and '2009/06/27')
     )
7
ответ дан 13 December 2019 в 22:14
поделиться

@Frankie - Нет необходимости в предложении NOT IN. Вы также можете использовать Left-Anti-Semi Join - например:

SELECT op.id 
FROM opening op 
LEFT OUTER JOIN booking b ON op.id = b.openingid AND b.bookingtype = 'C'
WHERE b.OpeningID IS NULL

и это:

SELECT op.id 
FROM opening op 
LEFT OUTER JOIN booking b ON op.id = b.OpeningID
 AND b.ArrivalDate BETWEEN '2009/06/20' AND '2009/06/27'  
 AND b.DepartureDate BETWEEN '2009/06/20' AND '2009/06/27'
WHERE b.OpeningID IS NULL
1
ответ дан 13 December 2019 в 22:14
поделиться

Вот простая версия без объединений, вам даже не нужна таблица Openings:

select openingId, id
from booking
where openingId not in (
    select openingId
    from booking
    where bookingType = 'C'
)
2
ответ дан 13 December 2019 в 22:14
поделиться
select opid, boid from 
   (select op.id opid, bo.id boid, bo.bookingType bookingType 
       from 
       openings op left outer join bookings bo on op.id = bo.id
   )
where bookingType <> 'C'
0
ответ дан 13 December 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: