2012-02-08 7 views
1

データベーススキーム加入:私は「コメント」テーブルから「ポスト所有者ののuName」と「コメントの所有者ののuName」を選択したいんだ http://pastebin.com/aPXk1rMf使用する複数のMySQLは

を(つまり、私は必要だと思いますコメントが投稿された直後、私はいくつかの活動を記録することができるようcOwnerID>のuNameとPID>ユビキタスID>のuName)。 私は、MySQLはそれを達成するために参加するが、私はできなかった使用しようとしました。だから私は無駄に試してみました。特定のポストIDが与えられ

$result = dbquery("INSERT INTO comments VALUES ('','$pID','$ownerID','$cmnt')"); // inserting a comment 

$lastID = mysql_insert_id(); 

$res = dbquery("SELECT 
       users.username AS username 
      FROM `comments` 
      LEFT JOIN `users` on comments.cOwnerID = users.uID 
      WHERE (cID='$lastID')"); 

答えて

1

は、私はあなたが、実際には、次の2つは、このテーブルに参加していますので、テーブルのユーザーのエイリアスを使用することがあると思います。

このような何か試してみてください:これはポストを投稿したユーザーを持っているし、その後ポスト

1
SELECT users1.username, users2.username FROM Posts p 
WHERE p.pID="$POST_OF_INTEREST" 
LEFT JOIN users users1 ON users1.uID=p.uID 
LEFT OUTER JOIN comments ON comments.pID=p.pID 
LEFT OUTER JOIN users users2 ON users2.uID=comments.cOwnerID 

、これは投稿者のユーザー名およびそのポストにコメントし、一人一人(コメントごとに1行)のユーザ名を取得します。投稿者用とコメントの作成者のための別の:

1
SELECT Users.uName AS UserNamePost 
      , UserComment.uName AS UserNameComment 
FROM Users 
INNER JOIN Posts 
    ON Posts.uID = Users.uID; 
INNER JOIN Comments 
    ON Comments.pID = Posts.pID ; 
INNER JOIN Users AS UserComment 
    ON Comments.cOwnerID = UserComment.uID ; 

を.username AS username、 comments.cOwnerID AS commentOwner、 users.uID ASユーザーID FROM コメント LEFT JOIN 人のユーザ ON commentOwner =ユーザーID WHERE commentOwner = '{$ lastID}' ";

0

ためのすべてのコメントをユーザーに参加する「 ユーザーを選択することを目指します

  SELECT 
       commentAuthor.username AS commentauthor_username, 
       postAuthor.username AS postauthor_username 
      FROM `comments` 
      LEFT JOIN `users` AS commentAuthor on comments.cOwnerID = commentAuthor.uID 
      LEFT JOIN `posts` on posts.pId = comments.pID 
      LEFT JOIN `users` AS postAuthor on posts.uID = postAuthor.uID 
      WHERE (cID='$lastID') 
関連する問題