c# - SQL Server : INNER JOIN writes out things two times

标签 c# asp.net sql database inner-join

这是我的 SQL 查询

select 
    tblUnderKategori.fldKategori, 
    tblUnderKategori.fldNavn,  
    tblUnderKategori.fldBillede, 
    tblKategori.fldId, 
    tblKategori.fldKategoriNavn 
from 
    tblUnderKategori
inner join 
    tblKategori on tblUnderKategori.fldKategori=2    

正如你所看到的,我需要 fldKategori = 2 处的所有内容,所以它确实如此,但它会写出 x2 次。

这是我需要显示的地方的后端代码

katFac objKat = new katFac();
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack && !string.IsNullOrEmpty(Request.QueryString["id"]))
    {
        foreach (DataRow item in objKat.GetUnderkatByKat(Convert.ToInt32(Request.QueryString["id"])).Rows)
        {
            litUnderkategori.Text += item["fldNavn"].ToString() + "<br /><br />";
        }
    }
}

我似乎无法找出问题所在,所以请任何人帮忙

提前谢谢您! :)

最佳答案

您正在此处创建卡特斯乘积,因为您的联接缺少实际将两个表联接在一起的条件。
尝试使用这个:

select  
    tblUnderKategori.fldKategori,  
    tblUnderKategori.fldNavn,   
    tblUnderKategori.fldBillede,  
    tblKategori.fldId,  
    tblKategori.fldKategoriNavn  
from  
    tblUnderKategori 
        inner join tblKategori  
            on tblUnderKategori.fldKategori = tblKategori.fldId
where tblUnderKategori.fldKategori=2  

这假设tblUnderKategori.fldKategori包含父类别的ID。

关于c# - SQL Server : INNER JOIN writes out things two times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350359/

相关文章:

c# - 密集分布式 C# (WCF) 架构设计

c# - LESS 到 CSS 的转换是在客户端还是在服务器端完成的?

php - 只选择那些在同一个表中有多个值的记录

java - HQL 左连接条件

javascript - 调用过程并传递 2 个参数 Javascript

sql - Postgres upsert 使用来自 select 的结果

c# - 如何将符号 - "† "转换为 HTML 代码?

c# - 查询时丢失对子对象的引用

c# - 在获得 CPU 频率方面需要一些帮助

c# - 将 session 和响应对象传递给类 - 开销?