Справка с, ГДЕ на ЛЕВОМ SQL-запросе СОЕДИНЕНИЯ

Остальное не работает, потому что нет элемента с идентификатором, который вы искали. getElementById терпит неудачу, и остальная часть вашего кода не была выполнена, классический runtime exception. Также измените имя ваших переменных, потому что может быть конфликт между этими переменными и соответствующими идентификаторами элементов. Для современных браузеров используйте атрибут textContent вместо innerHTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test page</title>

<script type="text/javascript">

function similarfunction(){

    var price_A1307 = 5.54;
    var span_A1307 = document.getElementById('A1307');
    if (span_A1307) span_A1307.textContent = price_A1307;

    var price_G2200 = 6.33;
    var span_G2200 = document.getElementById('G2200');
    if (span_G2200) span_G2200.textContent = price_G2200;

    var price_G5200 = 5.51;
    var span_G5200 = document.getElementById('G5200');
    if (span_G5200) span_G5200.textContent = price_G5200;

    var price_N3633 = 6.31;
    var span_N3633 = document.getElementById('N3633');
    if (span_N3633) span_N3633.textContent = price_N3633;

    var price_TS105 = 5.54;
    var span_TS105 = document.getElementById('TS105');
    if (span_TS105) span_TS105.textContent = price_TS105;

}

</script>

</head>

<body onLoad="similarfunction()">

A1307 is [110]lt;span id="A1307"></span><br><br>
G2200 is [110]lt;span id="G2200"></span><br><br>
G5200 is [110]lt;span id="G5200"></span><br><br>
N3633 is [110]lt;span id="N3633"></span><br><br>
TS105 is [110]lt;span id="TS105"></span><br><br>

</body>
</html>
19
задан matt b 20 October 2008 в 16:28
поделиться

3 ответа

Переместите условие в оператор Where к условию объединения.

SELECT Documents.name, HasDownloaded.id FROM Documents
LEFT JOIN HasDownloaded ON HasDownloaded.documentID = Documents.id 
  AND HasDownloaded.memberID = @memberID 

Это необходимо каждый раз, когда Вы хотите отослать к оставленной внутри объединяемой таблице, что иначе было бы оператором Where.

37
ответ дан 30 November 2019 в 03:03
поделиться
WHERE HasDownloaded.memberId IS NULL OR HasDownloaded.memberId = @memberId

был бы нормальный способ сделать это. Некоторые сократили бы его к:

WHERE COALESCE(HasDownloaded.memberId, @memberId) = @memberId

, поскольку Matt B. показывает, можно сделать это в Условии объединения - но я думаю, что это, намного более вероятно, смутит людей. Если Вы не понимаете, ПОЧЕМУ перемещение его в работы пункта СОЕДИНЕНИЯ, то я настоятельно рекомендовал бы избегать его.

4
ответ дан 30 November 2019 в 03:03
поделиться

@Mark: Я понимаю, почему синтаксис СОЕДИНЕНИЯ работает, но благодарит за предупреждение. Я действительно думаю, что Ваше предложение более интуитивно. Мне было любопытно видеть, который был более эффективным. Таким образом, я запустил быстрый тест (это было довольно упрощенно, я боюсь только по 14 строкам и 10 пробным версиям):

В Условии объединения:

AND HasDownloaded.memberID = @memberID
  • Клиентское время обработки: 4.6
  • Общее время выполнения: 35.5
  • Время ожидания на ответах сервера: 30.9

В операторе Where:

WHERE HasDownloaded.memberId IS NULL OR HasDownloaded.memberId = @memberId
  • Клиентское время обработки: 7.7
  • Общее время выполнения: 27.7
  • Время ожидания на ответах сервера: 22.0

похоже, что оператор Where очень немного более эффективен. Интересный! Еще раз, благодаря вам обоим для Вашей справки.

3
ответ дан 30 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

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