Если membership_id
равно AUTO_INCREMENT PRIMARY KEY
, и можно выбрать строку с самым высоким значением в ней, то вы можете использовать:
SELECT *
FROM membership_details
NATURAL JOIN (
SELECT MAX(membership_id) as membership_id
FROM membership_details
GROUP BY member_id
) sub
Вы также можете просто исправить то, что вы уже попытался, а именно:
SELECT *
FROM membership_details WHERE (membership_id,member_id) IN
( SELECT membership_id, MAX(membership_id)
FROM membership_details
GROUP BY member_id
)
измените его на:
SELECT *
FROM membership_details WHERE (membership_id,member_id) IN
( SELECT MAX(membership_id), member_id
FROM membership_details
GROUP BY member_id
)
Но если membership_id
- ПЕРВИЧНЫЙ КЛЮЧ, вам не нужно member_id
в предложении WHERE, и следующее также должно работать:
SELECT *
FROM membership_details WHERE (membership_id) IN
( SELECT MAX(membership_id)
FROM membership_details
GROUP BY member_id
)
Как видите, подзапрос такой же, как в моем запросе JOIN.
Добавьте строку в конце URL-адреса, чтобы сломать кеш. Обычно я делаю (с PHP):
<script src="/my/js/file.js?<?=time()?>"></script>
Так что он перезагружается каждый раз, когда я работаю над ним, а затем снимаю его, когда он идет в производство. На самом деле я немного абстрагирую это, но идея остается той же.
Если вы проверите источник этого веб-сайта, они добавляют номер версии в конце URL-адреса аналогичным образом, чтобы заставить нас внести изменения всякий раз, когда они обновляют файлы javascript.
Когда вы работаете с веб-страницей или файлом javascript, вы хотите, чтобы он перезагружался при каждом изменении. Вы можете изменить настройки в IE 8, чтобы браузер никогда не кэшировал.
Выполните следующие простые шаги.
В javascript я думаю, что это невозможно, потому что современные браузеры имеют политику безопасности в javascript .. и очищают кеш очень нарушает правила.
Вы можете попробовать добавить
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
в свой заголовок, но у вас будет потеря производительности.
Общая идея Паоло (т.е. эффективное изменение некоторой части URI запроса) - ваш лучший выбор. Однако я бы посоветовал использовать более статическое значение, такое как номер версии, которое вы обновляете при изменении файла сценария, чтобы вы по-прежнему могли повысить производительность кэширования.
Так что либо что-то вроде этого:
<script src="/my/js/file.js?version=2.1.3" ></script>
или, может быть,
<script src="/my/js/file.2.1.3.js" ></script>
я предпочитаю первый вариант, потому что он означает, что вы можете поддерживать один файл вместо того, чтобы постоянно его переименовывать (что, например, поддерживает согласованную историю версий в вашем исходном элементе управления). Конечно, любой из них (как я их описал) будет включать в себя обновление ваших операторов include каждый раз, поэтому вы можете придумать динамический способ сделать это, например, заменять фиксированное значение динамическим при каждом развертывании (используя Ant или что-то еще).