2012-01-30 2 views
0

두 테이블에서 데이터 (이 경우 이름)를 검색하여 테이블에 표시하고 싶습니다. 열은 두 테이블에서 동일합니다.어떻게 여러 테이블에?

나는 이런 식으로 뭔가를 할 수 :

$result=mysql_query("select table1.name, table2.name 
         from table1, table2 where id='$pid'"); 
+0

왜 사용해 보지 않으시겠습니까? –

+0

내가 그것을 시도하지만 오류가 나타납니다 : where 절에있는 'id'가 모호합니다. – Isabella

+1

table1.id = '$ pid' "); 여러 테이블을 사용하면 열 이름을 모호하게 만들지 않으므로 항상 테이블 이름을 넣으십시오 그리고 열 이름 앞에 점을 찍으십시오. – wargodz009

답변

1

이 시도 :

또한
$result = mysql_query("select table1.name as 'table1_name', table2.name as 'table2_name' from table1, table2 where table1.id='$pid' and table2.id='$pid'"); 

주의 그 경우 $pid의 값 외부 소스에서 오는 경우 서버에 대해 쿼리하기 전에 실제로 데이터를 준비해야합니다. 직접 filter function을 만들거나 데이터 바인딩을 통해 작업을 수행하는 mysqli::prepare 함수를 활용할 수 있습니다.

+0

제가 테이블 2의 데이터 만 가져올 때 사용했습니다. 예를 들어 영화를 검색 할 때 두 개의 다른 테이블 (table1, table2)에서 두 개의 영화를 구입하고 싶습니다. 예를 들어 테이블에 표시 할 선택한 영화. 설명 할 수있는 내용을 모르지만 요점을 알았 으면합니다. – Isabella

+0

@Isabella : 나는 당신이 무엇을 묻고 있는지 정말로 이해하지 못합니다. 'table2'의 이름을 얻은 이유는 name이라는 이름을 사용했기 때문에 결과가 이름 충돌 이었기 때문입니다. 원래의 쿼리를 편집하여 컬럼 별칭을 사용했기 때문에 충돌을 해결할 수 있습니다. '$ row-> tab와 같은 별칭 이름 le1_name'. 도움이되기를 바랍니다. –

1

변경 컬럼의 이름을 다음과 같이 :

$result=mysql_query("select t1.name name1, t2.name name2 
         from table1 t1, table2 t2 
         where t1.id=t2.id and t1.id='$pid'"); 
관련 문제