我正在开发一个使用基于Joomla的数据库的CMS!在Joomla db中,我们有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 :-(
请帮我解决一下吗?如何在那之间分歧?
非常感谢!
答案 0 :(得分:4)
您可以通过以下方式引用title
Categories
表格Categories.title
和title
Content
表格:Content.title
。对不起,如果我误解了你的问题。
答案 1 :(得分:1)
在你的选择中你可以像Alan说的那样,然后使用AS来改变你之后引用它们的内容。 (我不是特别了解ASP,我是PHP程序员,但我认为它非常相似)。
像
这样的东西SELECT *,Categories.title AS categoryTitle,Content.title AS contentTitle ... ...
然后你可以参考categoryTitle或contentTitle。
答案 2 :(得分:0)
我完成了它:)
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: - )