【问题标题】:select from multiple table?从多个表中选择?
【发布时间】:2019-03-05 10:43:02
【问题描述】:

我有两个如下表

人:

ID , FNAME, LNAME ,GENDER

100 , A , B , M

图片:

IMG_D,IMG_NM,ID_PERSONS

10 , 1.JPG  , 100
20 , 2.JPG  , 100
30 , 3.JPG  , 100

问题是: 我想查询从表人员中检索所有列,并且只从表图像中检索 IMG_NM 而没有表图像中的其余列

我进行如下查询

SELECT ID,FNAME,LNAME,GENDER,IMG_NM FROM persons,images where ID= ID_PERSONS  GROUP BY ID

结果:

100 , A , B , M , 1.JPG

我想显示所有图像而不重复其他类似的列

ID , FNAME, LNAME ,GENDER,IMG_NM

100 , A , B , M ,1.JPG
                ,2.JPG
                ,3.JPG 

【问题讨论】:

  • 在应用程序代码中处理自定义显示相关的事情。不要在 MySQL 端使这复杂化;让它只返回一个表格数据。从您的 sql 中删除 GROUP BY ID。然后在php中修改结果集

标签: php mysqli-multi-query


【解决方案1】:

SELECT p.ID, p.FNAME, p.LNAME, p.GENDER, GROUP_CONCAT(i.IMG_NM) AS IMG_NM FROM people p JOIN images i ON i.ID_PERSONS = p.id GROUP BY p.id;

应该很好地处理你想要的东西。

【讨论】:

  • 谢谢先生的回复>>>它给出警告:mysqli_query() 期望参数 2 是字符串,对象在第 18 行的 C:\xampp\htdocs\testst\data.php 中给出警告: mysqli_fetch_array() 期望参数 1 为 mysqli_result,在第 31 行的 C:\xampp\htdocs\testst\data.php 中给出的 null>>你能帮我解决这个错误吗......感谢你的努力......再次感谢
  • 对,您的 php 代码中有一个您尚未发布的错误。基本上你做错了 mysqli_query() ,然后因为它没有正确运行,你正在做一个 fetch_array 反对任何其他错误。
  • 是的,我发现了问题,它只显示一张空白图像,没有显示其余图像....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2021-11-08
  • 2014-01-12
  • 2011-02-01
  • 2010-10-11
  • 2021-03-19
  • 2010-10-01
相关资源
最近更新 更多