Могут быть моменты, когда mouseout
- лучший выбор, чем mouseleave
.
Например, предположим, что вы создали всплывающую подсказку, которую вы хотите отобразить рядом с элементом на mouseenter
. Вы используете setTimeout
, чтобы предотвратить всплытие всплывающей подсказки. Вы очищаете таймаут на mouseleave
с помощью clearTimeout
, поэтому, если мышь не выйдет, всплывающая подсказка не будет отображаться. Это будет работать 99% времени.
Но теперь скажем, что у элемента, к которому вы прикреплены, является кнопка с событием click
, и давайте также предположим, что это кнопка запрашивает у пользователя либо поле confirm
, либо alert
. Пользователь нажимает кнопку, а огонь alert
срабатывает. Пользователь нажимал его достаточно быстро, чтобы ваша подсказка не имела возможности всплывать (пока это так хорошо).
Пользователь нажимает кнопку OK alert
, и мышь покидает элемент. Но поскольку страница браузера теперь находится в заблокированном состоянии, ни один javascript не загорится, пока не будет нажата кнопка ОК, что означает, что ваше mouseleave
событие НЕ ПОЖАЛЕНО . После того, как пользователь нажмет OK, всплывающая подсказка всплывает (это не то, что вы хотели).
Использование mouseout
в этом случае было бы подходящим решением, потому что оно срабатывает.
«a» - это псевдоним таблицы :
SELECT a.id, a.rev, a.content FROM `docs` a # HERE, on this line, the table is given an alias of a INNER JOIN ( SELECT id, MAX(rev) rev FROM `docs` GROUP BY id ) b ON a.id = b.id AND a.rev = b.rev;
Этот псевдоним объявляется сразу после имени таблицы в предложении from (как указано выше).
Псевдонимы используются для сокращения и / или уточнения запроса. Есть несколько мест, где можно объявить псевдоним, например
.#table alias
from tablex as x
#derived table (subquery) alias
select d.* from (select * from t where col1 = 'xyz') as d
#column alias
select col1 as xyz
from tablex as x
Обратите внимание, что «как», показанное выше, является необязательным в большинстве баз данных, Oracle не разрешает использовать «как» при объявлении псевдонимов таблицы или подзапроса.
SELF JOINS
Псевдонимы таблиц жизненно важны, когда вы присоединяете таблицу к себе
select
t1.id as t1_id
, t2.id as t2_id
from tablex as t1
inner join tablex as t2 on t1.fk = t2.id
Без этих псевдонимов t1 и t2 этот запрос просто не может работать.
РЕДАКТИРОВАТЬ
К сожалению, слишком часто мы видим псевдонимы, в которых псевдонимы определяются «в порядке» в запросе. В вашем примере первый - «а», а второй - «б» и т. Д.
1113 Это плохая практика. Гораздо более значимым способом использования псевдонимов является использование «первых букв» каждого слова в имени таблицы или присвоение некоторого значения подзапросу.
В этом примере я бы предложил «d» (для документов) и «mr» (для max (rev))
SELECT d.id, d.rev, d.content, mr.rev
FROM `docs` as d
INNER JOIN (
SELECT id, MAX(rev) rev
FROM `docs`
GROUP BY id
) as mr ON d.id = mr.id AND d.rev = mr.rev;