2010-07-20 2 views
6

나는 내가하고있는 몇 가지 조인이 있습니다. tablename.column을 사용하여 데이터베이스에서 선택하려는 항목을 식별하고 모든 열을 선택하지 않으려 고합니다. 그러나, 나의 마지막 참여는 그 모든 것을 선택하고 싶습니다. 별표 또는 마지막 참여를 위해 사용할 수있는 방법이 있습니까?sql 하나의 테이블에만 모두 선택

마지막 테이블도 동적이기 때문에 코드를 하드 코딩 할 수는 없지만 (동적으로 작성할 수는 있지만) 쉬운 방법이 있다고 생각합니다.

SELECT content_name.name, 
      house.listing, 
      street.* 
     FROM content 
INNER JOIN house ON content_name.id=house.id 
LEFT JOIN street ON content_name.id=street.id; 
+0

당신이 가지고있는 것은'MySQL'과'postgresql'을 말할 수있는 것에서 작동해야합니다. 역동적 인 부분에 대해 자세히 설명해 주시겠습니까? –

+0

질문은 SQL 질문입니다 ... 나는 어느 쪽의 커뮤니티도 대답 할 수 있기 때문에 postgresql과 mysql 태그를 추가했습니다. 특정 정보 (로그인 한 사용자, 사용중인 조직, 사용중인 파일) ... 정보가 편집되면 자신의 테이블로 이동합니다. 각 조직에는 자체 테이블이있어서 특정 항목에 대한 고유 한 데이터를 가질 수 있습니다. 따라서 특정 기준에 따라 PHP는 누구인지에 따라 쿼리를 작성합니다. 이 모든 것이 잘 작동합니다. select *를 단지 하나의 테이블에서 말하고 나머지는 말하지 않는 쉬운 방법이 있는지 궁금합니다. – Keith

답변

7

마지막 테이블을 매번 동일한 방법으로 별칭을 지정하고. * 별칭. 생산 쿼리 말했다되고 그건

SELECT content_name.name,house.listing, last_table.* 
FROM content INNER JOIN house ON 
content_name.id=house.id 
LEFT JOIN street last_table ON content_name.id=last_table.id; 

, * 일이 기다리고 사고입니다.

+2

+1 : "마지막 테이블은 역동적이 될 것"에 관한 부분입니다 ... –

+0

다이내믹 한 의미에서 필자는 php에서 제어 할 수 없습니다 ... 사용자로부터 아무 것도 나오지 않습니다. – Keith

+0

Keith : 사용자/고객을 다른 테이블로 분리하는 경우 다른 스키마의 공통 테이블 이름을 고려한 다음 원하는 위치에 따라 "search_path"를 설정하면됩니다. 이러한 종류의 동적 쿼리를보다 간단하게 만들어야합니다. – rfusca

관련 문제