2012-01-10 4 views
0

여러 테이블이있는 경우 (예 : commentsuser_comments) 어떻게 한 번에 쿼리합니까? 의견과 user_comments를 조회 할 수있는 방법이 있나요다중 쿼리 및 쉬운 출력 (PDO?)

$query = $db->query("SELECT * FROM comments"); 
while($q = $query->fetchObject()){ 
    $id = $q->id; //getting the id from comments table only 
    $text = $q->comment; //getting the comments from comments table only 
} 

이 나를 ID를 제공하고

코멘트 : 내가 선택하는 하나 개의 테이블이있을 때

일반적으로 나는 보통 이렇게? 어쩌면이 각 테이블에서 동일한 열 이름이 아닌지이 나를 쉽게 관계없이 다른 테이블에서 값을 얻을 수는이

$id= $q -> comments -> id;//getting the id from comments table 
$text = $q -> comments -> comment;//getting comment from comments table 
$user_id = $q -> user_comments -> id;//getting the id from user_comments 
$user_text = $q -> user_comments -> comments;//getting the comments from user_comments 

처럼 이동합니다.

이것이 가능합니까?

감사합니다.

편집 : 테스트를 시도 하시겠습니까?

$sql = $dbh->query("SELECT * FROM comments WHERE id=4 UNION SELECT * FROM user_comments WHERE id=1"); 
$q = $sql->fetchObject(); 
$name = $q->comments->username; 
$text = $q->user_comments->comments; 
echo $name; 
echo $text; 

답변

0

이 특별한 연습 문제는 PDO와 SQL에 집중하십시오.

두 테이블을 UNION으로 집계 할 수 있습니다.

SELECT * FROM table_a 
UNION 
SELECT * FROM table_b 
+0

하지만 내 전체 사이트는 PDO를 사용합니다. – hellomello

+0

사용하지 말라고 말하지 않습니다. 그것을 사용하십시오. 나는 이것이 단지 SQL 문제이며 PDO가 아니라는 것을 말하고 있었다. 나는 당신이 PDO에 집중하는 대신 문제의 SQL 부분에 집중하도록 노력하고있었습니다. – Frankie

+0

간단한 예를 들려 줄 수 있습니까? 나는'("SELECT * FROM table_a WHERE id = $ id UNION SELECT * FROM table_b WHERE id = $ id")와 같은 것을 할 것인가? – hellomello