从选择查询中选择

时间:2017-04-03 13:45:53

标签: php mysql

我使用此查询的页面类似于" instagram" (不,我不是想建立一个Instagram)

我正在使用此代码

<?php
    $query = mysql_query('SELECT * FROM camera_web ORDER BY url ASC LIMIT 50');
    while($row = mysql_fetch_array($query)){
        echo '<img src="'.$row['url'].'" valign="middle" />'.$row['username'].' <br><hr>  <b>'.$row['user_id'].'</b>  <i>'.$row['description'].'</i><br />';
    }
?>

它显示了表格中的图片&#34; camera_web&#34;还有表中的user_id。

当有人发布照片时我会看到照片而不是用户名,而不是用户名ID,我该如何让查询选择选择&#34;用户名&#34;来自我的&#34;用户&#34;表ID =(user_id)。

如果你不太明白我会前进,我无法解释得更好。

3 个答案:

答案 0 :(得分:2)

您使用外键加入两个表

select `user_table_name`.`user`, `camera_web`.`url` 
from `camera_web` 
left join `user_table_name` 
on `user_table_name`.`id` = `camera_web`.`user_id` 
order by `camera_web`.`url` asc limit 50

答案 1 :(得分:0)

您只需要LEFT JOIN usersuser_id

SELECT cw.* , u.username
FROM camera_web cw
LEFT JOIN users u
ON u.id = cw.user_id
ORDER BY cw.url ASC LIMIT 50

答案 2 :(得分:0)

您需要使用JOIN,例如:

SELECT c.*, u.username
FROM camera_web c JOIN users u ON c.user_id = u.id
ORDER BY c.url LIMIT 50;

这仍然会同时选择user_idusername,如果您不想user_id,则可以用逗号分隔的字段列表替换c.*(egcid, c.picture等)。