组合 2 个 SQL 命令

本文关键字:命令 SQL 组合 | 更新日期: 2023-09-27 17:56:44

我有 2 个 SQL 命令来填充网格视图。首先,我使用以下SQL命令选择当前用户成功填写的每个ID:

"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() + "' "

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

用于填充网格视图的代码:

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

cmd 是 SQL 命令。

组合 2 个 SQL 命令

也许你可以试试这个:

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条件即可。

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

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