Где в этом примере sql Fifddle используется & ldquo; a. & Rdquo; характер продолжает исходить из? Его нет в таблице вообще

Могут быть моменты, когда mouseout - лучший выбор, чем mouseleave.

Например, предположим, что вы создали всплывающую подсказку, которую вы хотите отобразить рядом с элементом на mouseenter. Вы используете setTimeout, чтобы предотвратить всплытие всплывающей подсказки. Вы очищаете таймаут на mouseleave с помощью clearTimeout, поэтому, если мышь не выйдет, всплывающая подсказка не будет отображаться. Это будет работать 99% времени.

Но теперь скажем, что у элемента, к которому вы прикреплены, является кнопка с событием click, и давайте также предположим, что это кнопка запрашивает у пользователя либо поле confirm, либо alert. Пользователь нажимает кнопку, а огонь alert срабатывает. Пользователь нажимал его достаточно быстро, чтобы ваша подсказка не имела возможности всплывать (пока это так хорошо).

Пользователь нажимает кнопку OK alert, и мышь покидает элемент. Но поскольку страница браузера теперь находится в заблокированном состоянии, ни один javascript не загорится, пока не будет нажата кнопка ОК, что означает, что ваше mouseleave событие НЕ ПОЖАЛЕНО . После того, как пользователь нажмет OK, всплывающая подсказка всплывает (это не то, что вы хотели).

Использование mouseout в этом случае было бы подходящим решением, потому что оно срабатывает.

0
задан unutbu 1 March 2019 в 01:47
поделиться

1 ответ

«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;
0
ответ дан Used_By_Already 1 March 2019 в 01:47
поделиться
Другие вопросы по тегам:

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