0

複数のテーブルからデータをフェッチしていますが、他のすべてのデータは正しくフェッチされていますが、 post_images のIMAGE_POST_ID POST_IMG_PATHフィールドは、user_messages のメッセージ ID に従って表示されません。

私のテーブルは

1)post_images

| IMAGE_ID |    SMALL_PIC_PATH |  LARGE_PIC_PATH |                        ADDDATE | VISIBILITY | USERID | MESSAGEID |
---------------------------------------------------------------------------------------------------------------------
|     i_i1 | /post/small/a.jpg | /post/img/a.jpg | January, 01 2012 00:00:00+0000 |     public |      2 |        m1 |
|     i_i2 | /post/small/b.jpg | /post/img/b.jpg | January, 01 2012 00:00:00+0000 |     public |      2 |        m1 |
|     i_i3 | /post/small/c.jpg | /post/img/c.jpg | January, 01 2012 00:00:00+0000 |     public |      2 |        m1 |
|     i_i4 | /post/small/d.jpg | /post/img/d.jpg | January, 01 2012 00:00:00+0000 |     public |      2 |        m1 |
|     i_i5 | /post/small/e.jpg | /post/img/e.jpg | January, 01 2012 00:00:00+0000 |     public |      3 |        m2 |
|     i_i6 | /post/small/f.jpg | /post/img/f.jpg | January, 01 2012 00:00:00+0000 |     public |      3 |        m2 |

2) ユーザーメッセージ

| MESSAGEID |           MESSAGE |   ADDDATE | SENTBY | VISIBILITY | USERID |
----------------------------------------------------------------------------
|        m1 | Hello how are you | 23-2-2012 |      2 |     public |      1 |
|        m2 |            Hello  | 23-2-2012 |      3 |     public |      1 |
|        m3 |          Hiiiiiii | 23-2-2012 |      4 |     public |      1 |

関連するメッセージ ID のすべての image_id と small_pic_path をフェッチしたい。しかし、私のクエリでは、すべての image_id small_pic_path とすべての messageid が表示されています。

これは私のクエリです

SELECT user_messages.messageid,user_messages.message,
user_messages.sentby,user_messages.visibility,


(
   SELECT GROUP_CONCAT(  `post_images`.`image_id` SEPARATOR ';')
    FROM  `post_images`
    JOIN user_messages
  ON `post_images`.`messageid` =user_messages.messageid
) AS  `Image_post_id`,
(
   SELECT GROUP_CONCAT(  `post_images`.`small_pic_path` SEPARATOR ';')
    FROM  `post_images`
    JOIN user_messages
  ON `post_images`.`messageid` =user_messages.messageid
) AS Post_Img_path,
(
  SELECT count(*) FROM likes
  WHERE element_id=user_messages.messageid
  )AS Total_Likes
, smsusers.fname as Msg_sender_fname,
smsusers.lname as Msg_sender_lname,
profile_pic.small_pic_path as Msg_sender_pic

FROM user_messages
      INNER JOIN smsusers ON
        user_messages.SENTBY = smsusers.id
 INNER JOIN profile_pic ON
 user_messages.SENTBY = profile_pic.userid
WHERE user_messages.userid='1';

これは私のクエリリンクです

4

1 に答える 1

0

答えがわかりました。ここでは使用していませんでしたgroup by

于 2013-02-25T05:54:58.743 に答える