2010-02-06 10 views
1

각 테이블마다 다른 필드가있는 세 개의 테이블을 선택하십시오. 하나는 필드 "제목"을 가지고, 다른 하나는 필드 "위치"를 가질 수 있습니다. 이제는이 세 테이블의 공통 출력을 갖고 각 행에 제목이 있어야합니다. 테이블의 경우, whoch는 "title"필드에서 "title"필드를 가져야하지만, "title"필드에는 "title"이 없지만 "location"이 있으면 출력의 제목은 "location"필드에서 가져와야합니다. 정기적 인 동안 루프에서 그 결과는 다음과 같습니다 내가 지금 원하는 것은 [ '유연한']는 "유연한"$ 행과 같은 것입니다여러 테이블과 유연한 출력을 가진 mysql 선택

while ($row = mysql_fetch_array($result)) { 
    $marker['###TITEL###'] = $row['title']; 
} 

. 그래서 "title"필드가 존재한다면 $ row [ 'title']이되어야합니다. 그러나 "location, $ row [ 'location']이어야합니다 ..

누군가이 문제를 해결하는 방법을 알고 있습니까?

감사합니다, 나는 그것을 할 것입니다 방법 Maschek

+0

건설적인 비판으로 받아들이지 만 코드 강조 표시는 그리 좋지 않습니다. 코드를 올바르게 배치하는 방법을 말해줘야 할 것입니다. 그래서 강조 표시를 올바르게하거나 여러 번 시도해야합니다. 직관적 인 기능을 구현하려고 시도 할 때 좋은 웹 디자인 규칙과 일치하지 않는다고 생각합니다. 코드 하이라이트 이외에도이 사이트의 디자인을 좋아합니다. – maschek

+0

파서를 markdown이라고합니다. 코드 서식은 http://meta.stackexchange.com/questions/22186/how-do-i-get-my-code-blocks-formatted를 참조하십시오. 필자는 코드 블록을 표시하기 위해 4 개의 공백을 사용하여 코드를 들여 쓰기 (수동)하는 것을 선호합니다. – VolkerK

답변

0

:..

구문이 100 % 정확하지 않은 경우
while (list($title, $location, $other) = mysql_fetch_array($result)) { 
    if (!empty($title)) { 
     $row['title'] = $title; 
    } else if (!empty($location)) { 
     $row['title'] = $location; 
    } else { 
     $row['title'] = $other; 
    } 
} 

미안 PHP 코드를하지 않는 오랜 시간이있다

또한, variabl 내가 $ 행이라고 부르는 e는 당신이 당신의 질문에서 $ marker라고 부른 것입니다.

2

UNION을 사용하여 모든 테이블의 결과를 결합하고 필드를 유연하게 별칭을 지정하면 결과 집합에 유연한 열이 포함됩니다.

SELECT title AS flexible, field2, field3 FROM a 
UNION 
SELECT location AS flexible, field2, field3 FROM b 
+0

+1,하지만 쿼리의 두 번째 부분에서 열을 별칭으로 지정해야한다고 생각하지 않습니다. 필드 이름은 공용 구조체의 첫 번째 부분에서 설정됩니다. 두 번째 부분에서 동일한 수의 필드를 선택하기 만하면됩니다. 아무런 해를 끼치 지 않고 그것을 읽을 때 더 이해할 수 있습니다. – meouw

+0

현재 구조체가 작동 중일 때 별칭을 배치하려는 예제 @leventix를 사용하려고합니다. 불행히도 결과가 표시되지 않습니다. $ query = "SELECT * FROM 메시지는 왼쪽 uid_connector C = ON c.connect_uid a.uid 뉴스 ㄴ LEFT FROM UNION SELECT * 가입 uid_connector C = ON c.connect_uid b.uid "가입; 어떤 아이디어? – maschek

+0

나는 당신의 예제를 사용하여 그것을 지금 해결할 수 있었다. 예를 들어, 선택 주위에 대괄호를 추가하는 등의 수정을했다. 이제 작동합니다. 고맙습니다... – maschek