Php SQL(左连接)(照片,类别)

Php SQL(左连接)(照片,类别),php,mysql,sql,Php,Mysql,Sql,我有三张桌子: 照片: 照片编号 照片名称 照片至照片类别 身份证 照片编号 类别识别码 类别 类别识别码 类别名称 我想显示所有的分类照片。一张照片可以有一张照片。。5类。 有人能给我一个完整的SQL请求吗?我尝试使用左连接,但效果不太好。可能是组()??谢谢 //我的代码 SELECT * FROM photos AS p LEFT JOIN photo_to_category AS ptc ON p.photo_id = ptc.photo_id LEFT JOIN categ

我有三张桌子:

照片:

  • 照片编号
  • 照片名称
照片至照片类别

  • 身份证
  • 照片编号
  • 类别识别码
类别

  • 类别识别码
  • 类别名称
我想显示所有的分类照片。一张照片可以有一张照片。。5类。 有人能给我一个完整的SQL请求吗?我尝试使用左连接,但效果不太好。可能是组()??谢谢

//我的代码

SELECT * FROM photos AS p
LEFT JOIN photo_to_category AS ptc ON p.photo_id = ptc.photo_id
LEFT JOIN category AS c ON ptc.category_id = c.category_id

您必须使用
GROUP_CONCAT
生成包含照片所有类别的字符串,并按照片id对结果进行分组


有关更多信息,请参见此问题:

我建议您阅读您是否也可以发布一个查询结果的示例?我很确定我知道你的查询出了什么问题,但我需要看看结果才能确定。另外,如果你发布你想要什么样的数组或对象作为最终结果,那也很好。返回给我几次相同的图片,但带有另一个类别。那就是正确的结果。我知道,但我希望得到类似[category]=>array(一,二)的结果等等。我还有一个问题:)我想从类别中获取所有照片,并显示一个休息类别(例如,城市的图片可能属于夜晚、城市、人物类别),我是否应该获取图片和类别。当c.category_id=14//不起作用时,我得到了照片,但没有类别的其余部分。您需要连接类别表和联接表两次(使用不同的名称)。一个用于过滤(WHERE),一个用于检索图像的类别。你能给我举个例子吗?左键连接连接表两次(即复制粘贴你的行并将别名更改为ptc2)。然后使用ptc2进行过滤(在WHERE中)。它工作正常;)谢谢你:)