Wählen Sie auf zwei Tabellen, die gleichen Feldnamen enthalten?
-
05-09-2019 - |
Frage
ich ein CMS entwickle die Datenbank auf Joomla benutzen! In Joomla db, haben wir 2 Tabelle:
+----------+
|Categories|
+----------+
id
title
...
+-------+
|Content|
+-------+
id
title
catid
...
Ich habe eine Abfrage unter:
SqlQuery q = new Select("*")
//.Top("1")
.From(JosContent.Schema)
.InnerJoin(JosUser.IdColumn, JosContent.CreatedByColumn)
.InnerJoin(JosCategory.IdColumn, JosContent.CatidColumn)
.Where("catid").IsEqualTo(catId);
Und in der ASPX-Seite zeige ich Daten wie folgt aus:
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 :-(
Bitte helfen Sie mir das Problem beheben? Wie zwischen dem, discean?
vielen Dank!
Lösung
Sie können auf die title
von Categories
siehe Tabelle durch: Categories.title
und der title
von Content
Tabelle durch: Content.title
. Sorry, wenn ich Ihre Frage falsch verstanden.
Andere Tipps
Ihr wählen könnten Sie tun, wie Alan sagte, und dann AS verwenden, um zu ändern, was Sie ihnen, wie später verweisen. (Ich weiß nicht, speziell ASP, ich bin ein PHP-Programmierer, aber ich nehme an, es ziemlich identisch wie).
So etwas wie
SELECT *, Categories.title AS categoryTitle, Content.title AS contentTitle ... ...
Und dann können Sie auf categoryTitle oder contentTitle beziehen.
Ich habe es fertig:)
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);
Danke ... Google: -)