PHP MYSQL查询帮助合并数据


PHP MYSQL query help in combining data

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

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

我的问题是:

我有三个表temp_frds,top_frds_temp和尺寸和结构如下所示。

<>之前Temp_frds(包含,userid,好友id,好友名,好友图片url)id | fid | uid | |图片名称Top_frds_temp(包含好友id和友谊等级)支撑材|评级尺寸(包含图片的x,y坐标和图像的宽度和高度)id | XD |码| |宽度高度之前

现在这个数据在做什么?首先,我正在保存用户的所有朋友。然后保存用户的好友并放置评分。

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

<>之前$数组=阵列(数组("img"=>"IMGURL","栓"=>"243242","名字"=>"约翰","评级=> ' 50","x ' => ' 5 ', ' y ' => ' 5 ', ' w ' => ' 200 ', ' h ' => ' 200 '),数组("img"=>"IMGURL","栓"=>"245545","名字"=>"迈克","评级=> ' 43","x ' => ' 5 ', ' y ' => ' 100 ', ' w ' => ' 200 ', ' h ' => ' 200 '),阵列("编码器"=>"IMGURL","栓"=>"265544","名字"=>"马克","评级=> ' 30 ',' x ' => ' 5 ', ' y ' => ' 195 ', ' w ' => ' 200 ', ' h ' => ' 200 '),);之前

更多信息:

temp_frds。Id和尺寸。我没有亲戚。该查询应该根据评级从top_frds_temp获取顶级好友,然后从temp_frds获取名称和url信息,然后从维度表中添加维度。

例如:

加入temp_frds后,top_frds_temp我得到了

<>之前名称uid | | url1约翰网址6 mike URL10标记网址之前

现在如果在表维度表数据是这个

<>之前id | XD |码| |宽度高度1 5 5 200 2002 5 100 200 2003 60 300 200 200之前

最终结果应为

<>之前uid|name|url| id|XD|YD |WIDTH|HEIGHT1约翰URL 1 5 5 200 2006麦克URL 2 5 100 200 20010标记URL 3 60 300 200 200

我不确定我是否得到了你的数据模型。我假设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