从一个表中选择attachment_id,在另一个表中选择user_id

时间:2014-07-12 15:54:25

标签: mysql sql

我想从phpbb_attachments中选择5个随机图片,并显示phpbb_users的作者用户名。

phpbb_attachments:        phpbb_topics_posted:        phpbb_users:

attach_id  topic_id       user_id  topic_id           user_id  username
1          10             21       10                 21       Tom
2          5              53       5                  53       Maria
3          15             11       15                 11       John
  

$ result = mysqli_query($ con,“SELECT * FROM phpbb3_attachments WHERE   mimetype ='image / jpeg'ORDER BY RAND()LIMIT 5“);

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

SELECT att.attach_id,
       u.username
FROM phpbb_attachments att
JOIN phpbb_topics_posted t ON (t.topic_id=att.topic_id)
JOIN phpbb_users u ON (u.user_id=t.user_id)
WHERE att.mimetype='image/jpeg'
ORDER BY rand() LIMIT 5

正如here所述,最好避免ORDER BY RAND()。看看那里有一些替代品。

另外,我只包括您展示的字段,您应该调整它以包含文件位置等字段。

最后但并非最不重要的是,您的示例查询引用了phpbb3_attachments,示例数据使用了不同的名称。你应该相应地调整它。

希望这有帮助。