2009-05-23 67 views
1

我正在开发使用基于Joomla的数据库的CMS!在的Joomla分贝,我们有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 :-(

请帮助我修复它?如何在这之间进行分离?

非常感谢!

+3

不要使用select *,不好的做法。 – grepsedawk 2009-05-23 16:10:34

回答

4

您可以参考titleCategories的表:Categories.titletitleContent表由:Content.title。对不起,如果我误解了你的问题。

1

在你的选择中,你可以像Alan说的那样做,然后用AS来改变你以后引用它们的内容。 (我不明确地知道ASP,我是一名PHP程序员,但我认为它相当类似)。

喜欢的东西

SELECT *,Categories.title AS categoryTitle,Content.title AS contentTitle ... ...

然后你可以参考categoryTitle或contentTitle。

+0

嗨, 我从2003年到2007年的PHP工作,但现在我对ASP.NET感兴趣:-) 我知道你上面发布的查询,但现在我使用SubSonic(http://subsonicproject.com, http://subsonicproject.com/querying/select-queries/) - .NET的数据访问层。正如你所看到的,我上面发布的查询不像传统的SQL查询。 我只想知道如何在SubSonic中编写SQL,而不是传统的SQL。 谢谢! – Shinichi 2009-05-23 16:22:44

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); 

谢谢...谷歌:-)

相关问题