2012-01-10 3 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で2つのテーブルを集約できます。

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

関連する問題