2010-03-25 3 views
0

실례지만 대부분의 경우 초등 질문입니다.하지만 서로 다른 테이블의 테이블 열에 문제가 있습니다. 동일한 쿼리의 두 테이블에서 선택하려고합니다.복잡한 SQL 쿼리 ... 반환 된 변수의 이름

좋아, 이건 내 코드입니다 :

테이블 멤버는 다음과 같은 열이
$q_value = $mdb2->quote($_POST['query']); 
$field = $_POST['field']; 
$sql = "SELECT m.*, l.name FROM memberlist m, mail_lists l 
     WHERE m.$field=$q_value 
     AND l.id = m.list 
     ORDER BY m.id"; 
$l_list = $mdb2->queryAll($sql, '', 'MDB2_FETCHMODE_ASSOC'); 

: 아이디, 이메일, 목록, 섹스, 이름

및 테이블 mail_lists에는 다음과 같은 열이 있습니다 :

: ID, 이름

과 같이 foreach는 함께 결과를 통해, 나중에 루프 쿼리를 실행 한 후

mail_lists의 'name'열은 목록의 이름을 참조하는 반면 memberlist의 'name'열은 구성원의 이름을 참조하는 것이 문제입니다.

나중에 $ l-> name (foreach 내에서)에 액세스 할 때 m.name 또는 l.name을 얻을 수 있습니까? 또한, 어떻게 다른 사람에게 접근 할 수 있습니까?

아니면 두 개의 별도 쿼리를 수행해야합니까?

SELECT m.*, l.name as l_name FROM ... 

다음 namel_name 구분 :

답변

3

왜 당신은 단순히 사용할 수 없습니다? 다른 사람들이 명시 적으로 열 사양을 선호하는 경향이 나는 결코 사용 * 쿼리에 동의하지만, 수 있도록


는 그리고 이것은 스타일의 문제이다. 귀하가 원하는 경우가 아닌 귀하의 케이스에 실제로 문제가되지 않습니다 :

SELECT m.*, l.* FROM ... 

그리고 여전히 두 이름을 구별합니다. 명시 적 열 지정을 사용하면 각 열에 as 절을 추가하여 고유 한 이름을 지정할 수 있습니다.

+0

Perfect! 나는 진짜 거짓말 쟁이처럼 느껴진다. 하하 고마워요! – Polyonymy