2009-05-23 25 views
1

私はJoomla!をベースにデータベースを使用してCMSを開発しています! JoomlaのDBに、我々は2台を持っている:同じフィールド名を含む2つのテーブルを選択しますか?

+----------+ 
|Categories| 
+----------+ 
id 
title 
... 

+-------+ 
|Content| 
+-------+ 
id 
title 
catid 
... 

私は、以下のクエリがあります

SqlQuery q = new Select("*") 
         //.Top("1") 
         .From(JosContent.Schema) 
         .InnerJoin(JosUser.IdColumn, JosContent.CreatedByColumn) 
         .InnerJoin(JosCategory.IdColumn, JosContent.CatidColumn) 
         .Where("catid").IsEqualTo(catId); 

そして、ASPXページでは、私はそのようなデータを示しています。

Tite : <%# DataBinder.Eval(Container.DataItem, "title") %> 
In category : <%# DataBinder.Eval(Container.DataItem, "title") %> 
// Category tite not Content title, but ASP.NET think it is Content title :-(

助けてください私はそれを修正?どのようにそれをdisceanするには?

ありがとう!

+3

:-)、*悪い習慣を選択し、使用しないでください。 – grepsedawk

答えて

4

次の方法でtitleCategoriesの表を参照することができますによってCategories.titleContentテーブルのtitleContent.title。申し訳ありませんが、私はあなたの質問を誤解した場合。

1

あなたの選択では、Alanが言ったようにすることができますし、ASを使用して後で参照するものを変更します。 (私は特にASPを知らないが、私はPHPプログラマだが、私はかなり同義だと思う)。

SELECT *、categoryTitle、contentTitle ... AS Content.title AS Categories.titleような何か...

そして、あなたはcategoryTitleまたはcontentTitleを参照することができます。

+0

こんにちは、 私はASP.NETで興味を持っていましたが、2003年から2007年にかけてPHPで作業しました。 私はあなたが上に投稿したクエリを知っていましたが、今はSubSonic(http://subsonicproject.com、 http://subsonicproject.com/querying/select-queries/) - .NET用のデータアクセスレイヤー。ご存じのとおり、上記の質問は古典的なSQLクエリとは異なります。 私は、古典的なSQLではなく、SubSonicでSQLを書く方法を知りたいだけです。 ありがとう! – Shinichi

0

私はそれをfinisedている:)

SqlQuery q = new Select("*", "jos_Categories.title AS 'CatTitle'") 
         //Select("*", "CatTitle = jos_Categories.title") 
         //Select("*", "CatTitle = JosCategory.TitleColumn") 
         //.Top("1") 
         .From(JosContent.Schema) 
         .InnerJoin(JosUser.IdColumn, JosContent.CreatedByColumn) 
         .InnerJoin(JosCategory.IdColumn, JosContent.CatidColumn) 
         .Where("catid").IsEqualTo(catId); 

感謝を... Googleは

関連する問題