2009-05-23 2 views
1

Joomla!를 기반으로 데이터베이스를 사용하는 CMS를 개발 중입니다. 동일한 필드 이름을 포함하는 2 개의 테이블을 선택 하시겠습니까?

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 :-(

것은 도와주세요 나는 아래의 쿼리를

+----------+ 
|Categories| 
+----------+ 
id 
title 
... 

+-------+ 
|Content| 
+-------+ 
id 
title 
catid 
... 

: 줌라의 DB에, 우리는 두 테이블이 내가 고칠 수 있니? 어떻게 그 사이에 discean?

고마워요!

+3

이 선택 * 나쁜 관행을 사용하지 마십시오 구글 :-)를. – grepsedawk

답변

4

당신은에 의해 titleCategories의 표를 참조 할 수 있습니다 Categories.titletitleContent 테이블 : Content.title. 죄송합니다. 질문을 오해 한 경우.

1

Alan이 말한 것처럼 할 수 있고, AS를 사용하여 나중에 참조 할 부분을 변경할 수 있습니다. (나는 ASP를 알지 못한다. 나는 PHP 프로그래머이지만, 상당히 유사하다고 생각한다.)

categoryTitle AS

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

같은 뭔가 그리고 당신이 categoryTitle 또는 contentTitle를 참조 할 수 있습니다.

+0

안녕하십니까, 저는 2003 년부터 2007 년까지 PHP로 작업했지만 지금은 ASP.NET에 관심이 있습니다 :-) 위 게시글에 대한 질문은 알고 있지만 지금은 SubSonic (http://subsonicproject.com, http://subsonicproject.com/querying/select-queries/) - .NET 용 데이터 액세스 레이어. 보시다시피, 위에 게시 된 쿼리는 고전적인 SQL 쿼리와 다릅니다. 저는 고전적인 SQL이 아닌 SubSonic에서 SQL을 작성하는 방법을 알고 싶습니다. 감사합니다. – Shinichi

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

감사합니다 ...

관련 문제