2 SQL命令组合?

时间:2011-05-18 17:55:30

标签: c# sql

我有2个SQL命令,我需要填充gridview,首先我用以下SQL命令选择当前用户成功填写的每个ID:

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

之后,对于在db中找到的每个ID,我必须使用以下SQL命令获取它的名称,语言等(不同的表):

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

要填充我的gridview,我只能使用1个SQL命令。 有没有办法将这两个命令放入1个命令中?

用于填充gridview的代码:

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

cmd是SQL命令。

欢迎任何帮助!

5 个答案:

答案 0 :(得分:3)

也许你可以试试这个:

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 :(得分:1)

您可以使用JOIN语句来解决此问题。

答案 2 :(得分:1)

"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属性连接这两个表。 您也可以按照此模式连接多个表。

答案 3 :(得分:1)

"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' "

答案 4 :(得分:1)

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.