2 SQL команды объединены? - PullRequest
0 голосов
/ 18 мая 2011

У меня есть 2 команды SQL, для которых мне нужно заполнить сетку. Сначала я выбираю каждый идентификатор, который был успешно заполнен текущим пользователем, с помощью следующей команды SQL:

"SELECT Mod_ID FROM Toewijzing WHERE User_ID = '" + Session["userid"].ToString() + "' AND Toe_Status = '" + "ja" + "' "

Впоследствии для каждогоID, найденный в БД. Я должен получить его имя, язык и т. Д. (Другая таблица), используя следующую команду SQL:

"SELECT Mod_ID, Mod_Naam, Mod_Omschrijving, Taal_ID, User_ID from Model WHERE Mod_ID = '" + dr["Mod_ID"].ToString() + "' "

Чтобы заполнить мой gridview, я могу использовать только одну команду SQL.Есть ли способ поместить эти 2 команды всего в 1 команду?

Код, используемый для заполнения сетки:

        dr = cmd.ExecuteReader();
        gvIngevuld.DataSource = dr;
        gvIngevuld.DataBind();
        con.Close();

cmd является командой SQL.

Любая помощьДобро пожаловать!

Ответы [ 5 ]

3 голосов
/ 18 мая 2011

Возможно, вы могли бы попробовать это:

SELECT T.Mod_ID, M.Mod_Naam, M.Mod_Omschrijving, M.Taal_ID, M.User_ID
FROM Toewijzing T
LEFT JOIN Model M
ON T.Mod_ID = M.Mod_ID
WHERE T.User_ID = Session["userid"] AND T.Toe_Status = "ja"

Если вы хотите, чтобы все пользователи за один раз, просто отключите условие T.User_ID.

1 голос
/ 18 мая 2011
SELECT Mod_ID, Mod_Naam, Mod_Omschrijving, Taal_ID, User_ID 
from Model
WHERE Mod_ID IN
(
    SELECT Mod_ID 
    FROM Toewijzing 
    WHERE User_ID = "'" + Session["userid"].ToString() + "'"
    AND Toe_Status = "'" + "ja" + "'"
)   

Or this way

SELECT  M.Mod_ID, M.Mod_Naam, M.Mod_Omschrijving, M.Taal_ID, M.User_ID 
from Model M, Toewijzing T
WHERE User_ID = "'" + Session["userid"].ToString() + "'" 
AND Toe_Status = "'" + "ja" + "'"
AND M.Mod_ID  = T.Mod_ID 

Regards.
1 голос
/ 18 мая 2011
"SELECT m.Mod_ID, m.Mod_Naam, m.Mod_Omschrijving, m.Taal_ID, t.User_ID 
   FROM Toewijzing t
   JOIN Model m on t.Mod_id = m.Mod_ID
  WHERE t.User_ID = '" + Session["userid"].ToString() + "' AND Toe_Status = 'ja' "
1 голос
/ 18 мая 2011
"SELECT
    T.Mod_ID, M.Mod_Naam, M.Mod_Omschrijving, M.Taal_ID, M.User_ID
FROM Toewijzing T, Model M
WHERE
    T.User_ID = '" + Session["userid"].ToString() + "'
    AND T.Toe_Status = '" + "ja" + "' "
    AND M.Mod_ID = T.Mod_ID"

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

1 голос
/ 18 мая 2011

Вы можете использовать оператор JOIN, чтобы обойти эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...