Примеры запроса в many-many отношениях

При запуске интервала он будет длиться вечно, если вы его не очистите.

Ваш первый интервал, который был запущен при первом вызове, все еще работает в фоновом режиме. Это хорошо видно на примере ниже.

Вы должны использовать clearInterval()

function timer() {
  var t = 3;

  console.log("timer started t = " + t);


  setInterval(function() {
    if (t >= 0) {
      document.getElementById("timer").innerHTML = t;
      console.log(t);
      t--;
    } else {
      console.log("Time up");
      document.getElementById("timer").innerHTML = "Time Up!";
    }
  }, 1000);


  console.log("timer stopped t = " + t);
}




  






   

10
задан Soeren 6 January 2009 в 13:47
поделиться

4 ответа

Первая вещь, которую я сделал бы, рекомендуют использовать ORM как Linq-To-Sql или NHibernate, который даст Вам объектные представления Вашей модели данных, которые делают намного более простым обработать сложные вещи как many-many операции CRUD.

Если бы ORM не является частью Вашего комплекта инструментальных средств затем, вот то, как это посмотрело бы в СОЛЬ.

Users       UserAddresses     Addresses
=======     =============     =========
Id          Id                Id
FirstName   UserId            City
LastName    AddressId         State
                              Zip

К нашим таблицам присоединяются как это:

   Users.Id -> UserAddresses.UserId
   Addresses.Id -> UserAddresses.AddressId
  • Все записи в Пользователях на основе Адресов. Идентификатор
SELECT        Users.*
FROM            Addresses INNER JOIN
                         UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                         Users ON UserAddresses.UserId = Users.Id
WHERE        (Addresses.Id = @AddressId)
  • Все записи в Адресах на основе Пользователей. Идентификатор
SELECT        Addresses.*
FROM            Addresses INNER JOIN
                         UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                         Users ON UserAddresses.UserId = Users.Id
WHERE        (Users.Id = @UserId)
6
ответ дан 4 December 2019 в 02:27
поделиться
SELECT *
FROM a
WHERE id IN (SELECT aid FROM ab WHERE bid = 1234)

или

SELECT a.*
FROM a
JOIN ab ON a.id = ab.aid
WHERE ab.aid = 12345

Вставить, который зависит от Вашей базы данных (например, являются ли первичные ключи от последовательностей, автоматически сгенерированных или сгенерированных некоторым другим способом или просто составными ключами). Но Вам просто нужно:

Для тех данных:

INSERT INTO a VALUES (...)

Для отношений:

INSERT INTO ab VALUES (...)
1
ответ дан 4 December 2019 в 02:27
поделиться

Для получения всех записей в таблице A на основе ключа B, на английском языке, Вы хотите записи в Таблице A, которые имеют запись Соединения с тем ключом TableB (Предположите, что tableA_B имеет два седла Внешнего ключа, (TabAFK и TabBFK)

  Select * from TableA A
  Where pK In (Select Distinct TabAFK From tableA_B
                Where TabBFK = @TableBKeyValue)

То же самое для другого направления

  Select * from TableB B
  Where pK In (Select Distinct TabBFK From tableA_B
                Where TabAFK = @TableAKeyValue)

Для вставки новой записи сделайте нормальную вставку в TableA и TableB по мере необходимости... Вставляет в объединяющую таблицу (tableA_B), просто два pks от двух основных таблиц

   Insert TableA (pk, [other columns]) Values(@pkValue,  [other data)
   Insert TableB (pk, [other columns]) Values(@pkValue,  [other data)

- Затем вставьте в Объединяющую таблицу для каждой ассоциации, которая существует...

  Insert tableA_B (TabAFK, TabBFK)  Values(@PkFromA,  @PkFromB)  
1
ответ дан 4 December 2019 в 02:27
поделиться

1) выберите tableA.* от tableA присоединяются к tableA_B на tableA.id = tableA_B.idA где tableA_B.idB = somevalue

2) выберите tableB.* от tableB, оставленного соединение tableA_B на tableB.id = tableA_B.idB, где tableA_B.idA = somevalue

3) вставьте зависит от Вашей базы данных, но вставьте в a, вставьте в b и затем вставьте в a_b; даже с ограничениями на таблицы это должно проложить себе путь.

подсказка: не используйте оператор IN для 1/2

0
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

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