2

これが私のSQLクエリです

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

そして、ご覧のとおり、 myfldKategori = 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 />";
        }
    }
}

問題が解らないので誰か助けてください

前もって感謝します!:)

4

4 に答える 4

2

2 つのテーブルを実際に結合する条件が結合にないため、ここでカルセシアン積を作成しています。
これを使用してみてください:

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 が含まれていることを前提としています。

于 2012-09-10T11:10:34.587 に答える
1

ON句は、テーブルを結合する列を指定します。条件はWHERE句に含める必要があります。このようなものを試してください:

SELECT
   tblUnderKategori.fldKategori, 
   tblUnderKategori.fldNavn, 
   tblUnderKategori.fldBillede,
   tblKategori.fldId,        
   tblKategori.fldKategoriNavn    
FROM tblUnderKategori           
   INNER JOIN tblKategori    
   ON tblUnderKategori.[some key column] = tblKategori.[corresponding key column]        
WHERE tblUnderKategori.fldKategori=2 
于 2012-09-10T11:12:14.383 に答える
1

AJOINは 2 つのテーブルを結合するため、共通の列を指定する必要があります。特定の値も除外する場合は、WHERE後で句を追加します。SELECTまた、後で明示的に読み取りたくない場合は、照合と結合に使用されるフィールドを実際に使用する必要はありません。

select 
   tblUnderKategori.fldNavn,  
   tblUnderKategori.fldBillede, 
   tblKategori.fldKategoriNavn
from tblUnderKategori join tblKategori
   on tblUnderKategori.fldKategori = tblKategori.fldId
where
   tblUnderKategori.fldKategori = 2    
于 2012-09-10T11:11:05.193 に答える
0

SQLステートメントにJOIN上のテーブルへのフィールドがありません。次のようになります。

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

WHERE次に、句にフィルターを適用します。

于 2012-09-10T11:13:28.650 に答える