1

我正在开发一个使用基于 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 :-(

请帮我修好吗?如何区分这两者?

非常感谢 !

4

3 回答 3

4

您可以通过:引用表格,通过title:引用表格。对不起,如果我误解了你的问题。CategoriesCategories.titletitleContentContent.title

于 2009-05-23T15:52:21.330 回答
1

在您的选择中,您可以像 Alan 所说的那样做,然后使用 AS 更改您稍后引用它们的内容。(我并不特别了解 ASP,我是一名 PHP 程序员,但我认为它非常相似)。

就像是

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

然后你可以参考 categoryTitle 或 contentTitle。

于 2009-05-23T16:14:22.047 回答
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);

谢谢...谷歌:-)

于 2009-05-23T17:15:03.633 回答