Seleccionar en 2 tablas que contienen mismo nombre de campo?
-
05-09-2019 - |
Pregunta
Estoy desarrollando un CMS que el uso de la base de datos basada en Joomla! En Joomla db, tenemos 2 tabla:
+----------+
|Categories|
+----------+
id
title
...
+-------+
|Content|
+-------+
id
title
catid
...
Tengo una consulta a continuación:
SqlQuery q = new Select("*")
//.Top("1")
.From(JosContent.Schema)
.InnerJoin(JosUser.IdColumn, JosContent.CreatedByColumn)
.InnerJoin(JosCategory.IdColumn, JosContent.CatidColumn)
.Where("catid").IsEqualTo(catId);
Y en la página ASPX, muestro datos como que:
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 :-(
Por favor, ayuda a corregir el problema? Cómo discean entre eso?
Gracias mucho!
Solución
Se puede hacer referencia a la tabla de title
Categories
por: Categories.title
y la title
de mesa Content
por: Content.title
. Lo siento si no he entendido bien su pregunta.
Otros consejos
En su selecto que podría hacer como Alan dijo, y luego usar para cambiar lo que hace referencia a ellos como más tarde. (No sé específicamente ASP, yo soy un programador de PHP, pero supongo que es bastante similary).
Algo así como
SELECT *, Categories.title AS categoryTitle, Content.title AS contentTitle ... ...
Y a continuación, puede hacer referencia a categoryTitle o contentTitle.
lo he acabado:)
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);
Gracias ... Google: -)