SELECT userid FROM UserRole WHERE roleid IN (1, 2, 3) GROUP BY userid HAVING COUNT(DISTINCT roleid) = 3;
любому читающему это: мой ответ прост и прост, и получил 'принятое' состояние, но пойдите, читает ответ данный @cletus. Это имеет намного лучшую производительность.
Justing, думающий вслух, другой способ записать самосоединение, описанное @cletus:
SELECT t1.userid FROM userrole t1 JOIN userrole t2 ON t1.userid = t2.userid JOIN userrole t3 ON t2.userid = t3.userid WHERE (t1.roleid, t2.roleid, t3.roleid) = (1, 2, 3);
Это могло бы быть легче считать для Вас, и MySQL поддерживает сравнения кортежей как этот. MySQL также знает, как использовать закрывающие индексы разумно для этого запроса. Просто выполните его до
EXPLAIN
и посмотрите "Используя индекс" в примечаниях для всех трех таблиц, что означает, что это читает индекс и не должно даже касаться строк данных.я выполнил этот запрос более чем 2,1 миллиона строк (дамп данных в июле Переполнения стека для PostTags) использование MySQL 5.1.48 на моем MacBook, и это возвратило результат через 1,08 секунды. На достойном сервере с достаточной памятью, выделенной
innodb_buffer_pool_size
, это должно быть еще быстрее.
Добавьте фоновое изображение с двумя цветами во внешний блок и разрешите браузеру масштабировать его (вместо мозаичного).
Каждый цвет должен заполнять ровно 50% ширины изображение, чтобы цвета никогда не просачивались с обеих сторон.
Возможно, даже поместите изображение абсолютно позади внутреннего div.
Идеи, как растянуть изображение, см. в этом вопросе: CSS Background Repeat
Вы можете иметь два блока снаружи, а затем иметь по одному из ваших блоков в каждом. По правому краю и по левому краю соответственно. Примерно так:
-----------------------------------------------------
(div) | (div)
_________________|_________
|(div) | (div) |
| | |
| | |
<- white | white | green | green ->
| | |
| | |
|________________|_________|
|
------------------------------------------------------
Я бы поместил внутрь этого блока два других блока и дал им соответствующие размеры и цвета фона