【问题标题】:PHP MYSQL query help in combining dataPHP MYSQL 查询帮助组合数据
【发布时间】:2011-11-20 09:37:27
【问题描述】:

这是我第一次在这里发布问题。我正在做一个项目并卡住了。我正在使用 codeignitor 框架。

我使用 php 作为核心语言和 MYSQL 数据库。

这是我的问题:

我有 3 个表 temp_frds、top_frds_temp 以及如下所示的尺寸和结构。

temp_frds(包含用户 ID、朋友 ID、朋友姓名、朋友图片 url) id|fid|uid|名称|图片 top_frds_temp(包含朋友 ID 和友谊等级) 确定|评级 尺寸(包含图片x,y坐标以及图像的宽度和高度) id|XD|YD|宽度|高度

现在这些数据在做什么?第一,我正在保存用户的所有朋友。然后保存用户的顶级朋友并评分。

现在我想要运行一个查询,它将查找前 50 个朋友、姓名、id 和 pic,然后按维度表的 id 顺序从维度表中查找所有数据。这是我在输出中需要的示例:

$数组=数组( array('img'=>'IMGURL','fid'=>'243242','name'=>'john','rating=>'50','x'=>'5','y'= >'5','w'=>'200','h'=>'200'), array('img'=>'IMGURL','fid'=>'245545','name'=>'mike','rating=>'43','x'=>'5','y'= >'100','w'=>'200','h'=>'200'), array('img'=>'IMGURL','fid'=>'265544','name'=>'mark','rating=>'30','x'=>'5','y'= >'195','w'=>'200','h'=>'200'), );

更多信息:

temp_frds.id 和 dimensions.id 没有关系。查询应该根据 top_frds_temp 中的评分获取顶级朋友,然后从 temp_frds 中获取名称和 url 信息,然后从维度表中添加维度。

例如:

加入 temp_frds,top_frds_temp 后得到

uid|名称|网址 1 约翰网址 6 迈克网址 10 标记网址

现在如果在表维度表数据是这样的

id|XD|YD|宽度|高度 1 5 5 200 200 2 5 100 200 200 3 60 300 200 200

最终结果应该是

uid|名称|网址| id|XD|YD |宽度|高度 1 约翰 URL 1 5 5 200 200 6 迈克 URL 2 5 100 200 200 10 标记 URL 3 60 300 200 200

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我不确定我是否得到了你的数据模型。我假设temp_frds.iddimensions.id?

    那么这样的事情应该可以解决问题:

    SELECT 
        temp_frds.picture AS img,
        temp_frds.fid,
        temp_frds.name,
        top_frds_temp.rating,
        dimensions.xd = x,
        dimensions.yd = y,
        dimensions.width = w,
        dimensions.hight = h
    
    FROM
        temp_frds
    
    JOIN
        top_frds_temp ON top_frds_temp.fid = temp_frds.fid
    
    JOIN
        dimensions ON dimensions.id = temp_frds.id
    
    ORDER BY
        top_frds_temp.rating DESC
    
    LIMIT 50
    

    注意你的维度列HIGHT的错字,应该是HEIGHT

    【讨论】:

    • 感谢 jona 的回答,temp_frds.id 和 dimensions.id 没有关系。我已经编辑了问题并提供了更多信息......在更多信息部分
    • @SandyFark 那么我不知道你的数据库布局。尺寸表与模型的其余部分有何关联?您需要一些关系信息才能将维度与 temp_frds 表连接起来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2011-07-19
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多