JOIN
порядок не имеет значения, механизм запросов реорганизует их порядок на основе статистики для индексов и прочего.
Для теста выполните следующие действия:
JOIN
и теперь выполните запрос еще раз Они должны быть идентичны, так как механизм запросов реорганизует их в соответствии с другими факторами.
Как прокомментировал другой ответ, вы можете использовать OPTION (FORCE ORDER)
, чтобы использовать именно тот порядок, который вы хотите, но, возможно, он будет не самым эффективным.
Как общее практическое правило, порядок JOIN должен быть с таблицей наименьших записей сверху, а большинство записей последними, так как в некоторых движках СУБД порядок может иметь значение, а также если для помощи использовалась команда FORCE ORDER ограничить результаты.
innerHTML
должен работать нормально, например
// This would be after the Ajax request:
var myHTML = XHR.responseText;
var tempDiv = document.createElement('div');
tempDiv.innerHTML = myHTML.replace(/<script(.|\s)*?\/script>/g, '');
// tempDiv now has a DOM structure:
tempDiv.childNodes;
tempDiv.getElementsByTagName('a'); // etc. etc.
Зациклить свойство responseXML объекта XMLHttpRequest. Более того, если вы используете innerHTML для добавления responseText ответа в формате HTML, браузер проанализирует текст и соберет его в DOM, прежде чем даже добавить его в поток документов.
Если ваши данные - XHTML, значит, это действительный XML, тогда могут помочь DOMParser (Mozilla) или loadXML (IE). Если нет, я не могу придумать ничего лучше, чем удалить и затем передать его в innerHtml.
См. 21.1.3 в руководстве Фланагана по Javascript (5-е издание).
Колин