我有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命令。
欢迎任何帮助!
答案 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.