php - SELECT sql 语句,从一个表中检索一行,并从另一个表中检索许多相关行

标签 php mysql

我在一个投票脚本中工作,我有两个表 {hs_questions_q}{hs_answers_ans} 第一个存储问题,第二个存储它的答案

我用这个sql语句来检索数据

SELECT * FROM hs_questions_q INNER JOIN hs_answers_ans ON id_q=idq_ans WHERE active_q ='1' and home_q ='1' ORDER BY id_q DESC limit 1

我想知道但我无法在我的 PHP 代码中处理的是这个查询如何仅从问题表和答案表中返回最后一行,但我需要从问题表中检索最后一行并且答案表中与其相关的所有行

最佳答案

这将返回表中每个问题的 1 行,而不是答案的行数:

我假定结构:

hs_questions_q (id,desc)

hs_answers_ans(id,desc)

SELECT question.desc, group_concat(hs_answers_ans.desc SEPARATOR '#')
FROM (select * 
          from hs_questions_q 
          where active_q ='1' and home_q ='1' ORDER BY id_q DESC limit 1) question
INNER JOIN hs_answers_ans ON id_q=idq_ans
group by question.id

result:
question1 | Answer1#Answer2#Answer3

以后可以在php端获取结果后用#号分割

如果超过允许的数据包大小,您可能会得到截断的答案。你可以解决它,

SET SESSION group_concat_max_len = 6000(any threshold); 

关于php - SELECT sql 语句,从一个表中检索一行,并从另一个表中检索许多相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767839/

相关文章:

php - 从 PHP 脚本运行 PHP 脚本而不阻塞

php - 发送电子邮件按钮

php - PNG 图像调整大小无法正常工作

php - 使用Join查询两个表

mysql - SQL,左连接,分组依据,计数(*)作为haspicture?

php - 报告引擎指南(Pentaho、JasperReports、BIRT)

php - 部署在 IP 地址上的 Codeigniter 在除索引之外的每个 Controller 上给出 404

php - 通过准备语句 mysqli php 得到不想要的结果

PHP mysqli SELECT 查询不会执行

javascript - DB回调后快速应用程序使用