2010-02-08 6 views
0

두 테이블, classifiedfordon이 있습니다.왜 쉽게 가입 할 수 없습니까? (mysql)

... 그게 문제가 여기에없는 것을 마음, SOLR에서 반환 s는 결코 :

SELECT * FROM classified, fordon WHERE classified.ad_id IN ('$solr_id_arr_imploded') AND classified.classified_id=fordon.classified_id 

BTW, 배열이 광고 ID의 설정은 다음과 같습니다

classified table: 
classified_id (PK) 
etc... 

fordon table: 
id (PK) 
classified_id (FK) 

은이 코드를 사용하지하려고

그때 나는 모든 결과를 표시하는 동안 루프에로 MYSQL_ASSOC를 사용

while($row = mysql_fetch_array($qry_result)){ 

을하지만 난 뭔가를 에코하려고 할 때 g 테이블 fordon 안에 있으면 색인을 찾을 수 없습니다 오류가 나타납니다. 그러나 테이블 내부에있는 것은 무엇이든 classified 에코가 작동합니다!

아이디어가 있으십니까?

감사

UPDATE

while($row = mysql_fetch_array($qry_result)){ 
    echo $row['type']; // This doesn't work, because the 'type' column is inside the 'fordon' table 
    echo $row['headline']; // This does work because it's inside 'classified' table. 
+0

결과를 '에코'할 때 코드는 어떻게 생겼을까요? –

+0

나는 실제 while 루프를 의미했다. :) –

+0

여기 FK 설정을 잘못 할 수 있습니까? FK가 fordon 테이블에 있는데 어쩌면 다른 방법일까요? (중요합니까?) –

답변

1

이 도움이됩니까?

SELECT * 
FROM classified c 
INNER JOIN fordon f ON c.classified_id=f.classified_id 
WHERE classified.ad_id IN ('$solr_id_arr_imploded'); 

또한 일반적으로 사용하지 않는 것이 좋습니다 : SELECT *. 원하는 요소 만 선택하거나 *을 사용하는 것이 좋습니다.

SELECT classified.* 
FROM classified c 
INNER JOIN fordon f ON c.classified_id=f..classified_id 
WHERE classified.ad_id IN ('$solr_id_arr_imploded'); 

은 당신이 할 때 모든 테이블의 모든 필드를 얻을 수 * 담요와 결합한다.

+0

나는 이것이 그가 달성하기를 원하는 것이라고 믿습니다. –

+0

이 이해되었지만, 분류 된 .field_name 및 fordon.field_name이 있다면 어떨까요? SELECT *를 사용 중이므로 오류가 발생했습니다. 일반적으로 좋은 연습은 테이블을 조인 할 때 원하는 것을 구체적으로 쿼리하는 것입니다. 그러나 당신이 좋아하는 방법을, 나는 다만 건의한다;) – mardala

관련 문제