gpt4 book ai didi

c# - 在 SQL 中使用连接检索不同的记录

转载 作者:行者123 更新时间:2023-11-30 22:12:02 26 4
gpt4 key购买 nike

我正在使用两个表运行 sql 查询,即 QuestionInsertQuestion_Papers。各表中的列如下:-

Table:-QuestionInsert  
Columns:-QuestionNum,Question,Answer,CatId,SubCatId

Table:-Question_Papers
Columns:-QuestionNum
  1. 我想要一个 sql 查询,它将从表 QuestionInsert 中检索所有 QuestionNum、Question、Answer,其中 QuestionNum 存在于表 Question_Papers 中。
  2. 此外,我想从表 QuestionInsert 中检索所有 QuestionNum、Question、Answer,而 QuestionNum 不在表 Question_Papers 中。

此数据显示在 GridView 上。我使用的查询如下:-第一个条件的查询是:

SELECT F.QuestionNum,
F.Question,
F.Answer
FROM QuestionInsert F
INNER JOIN Question_Papers FS ON F.[QuestionNum]=FS.QuestionNum
WHERE ((F.QuestionNum=FS.QuestionNum) AND (F.CatId='" +
DropDownList1.SelectedValue + "' And F.SubCatId='" + DropDownList3.SelectedValue + "'))
ORDER BY F.QuestionNum DESC;

第二个条件的另一个查询。是:-

SELECT F.QuestionNum,
F.Question,
F.Answer
FROM QuestionInsert F INNER JOIN Question_Papers FS ON F.[QuestionNum]!=FS.QuestionNum
WHERE ((F.QuestionNum!=FS.QuestionNum) AND (F.CatId='" + DropDownList1.SelectedValue + "'
And F.SubCatId='" + DropDownList3.SelectedValue + "'))
ORDER BY F.QuestionNum DESC

我的代码正在检索正确的信息,但如果 Question_Papers 表中存在超过一行的相同 QuestionNum,它会重复显示所有行。我想分别显示表 Question_Papers 中存在和不存在的唯一行。

请帮助我。

最佳答案

对于第二种情况,您可以尝试以下方法:

SELECT F.QuestionNum,F.Question,F.Answer 
FROM QuestionInsert F
WHERE (F.CatId='" + DropDownList1.SelectedValue + "' And F.SubCatId='" + DropDownList3.SelectedValue + "')
AND F.QuestionNum NOT IN (SELECT QuestionNum FROM Question_Papers)
ORDER BY F.QuestionNum DESC

这是第一个条件:

SELECT F.QuestionNum,F.Question,F.Answer 
FROM QuestionInsert F
WHERE (F.CatId='" + DropDownList1.SelectedValue + "'
AND F.SubCatId='" + DropDownList3.SelectedValue + "')
AND F.QuestionNum IN (SELECT QuestionNum FROM Question_Papers)
ORDER BY F.QuestionNum DESC";

但是,您的代码存在严重问题 - 您是否调查过 SQL injection ?有很多数据访问框架,比如 Entity Framework ,这会让您走上更好的路线。

关于c# - 在 SQL 中使用连接检索不同的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com