【问题标题】:how i can stop repeating sql我怎样才能停止重复sql
【发布时间】:2023-08-21 21:56:01
【问题描述】:

我想显示一篇带有 3 张图片的文章,但我不能一直显示一篇带有不同图片的文章 3 次

SELECT * FROM article, images WHERE article.idArticle = images.idArticle

【问题讨论】:

  • 您的问题是什么?样本数据和期望的结果真的很有帮助。
  • 你能添加你需要的输出格式吗
  • 那么,您要显示哪张图片?此外,您应该切换到“现代”显式 join 语法,而不是过时的隐式(逗号分隔)连接语法。
  • 我想显示一篇有 4 张图片的文章,而不是重复文章 4 次
  • 你提到了 PHP,所以在那里处理问题。

标签: php mysql sql pdo phpmyadmin


【解决方案1】:

这将列出您的所有文章一次,并且由于GROUP_CONCAT(逗号分隔值),图像将连接在IMG 列中。

SELECT article.idArticle, GROUP_CONCAT(images.images) AS IMG
FROM article
LEFT JOIN images ON article.idArticle = images.idArticle
GROUP BY article.idArticle

【讨论】:

  • 我没有任何名为 IMG 的列
  • SQL 查询:Documentation SELECT article.*, GROUP_CONCAT(images.images) A​​S IMG FROM article LEFT JOIN images ON article.idArticle = images.idArticle LIMIT 0, 25 MySQL 说:Documentation i get this error #1140 - 在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列 'ar.article.idArticle';这与 sql_mode=only_full_group_by 不兼容
  • IMGGROUP_CONCAT 列的别名。我已经编辑并添加了一个 group by 子句。
  • FWIW,这不是我会做的。
  • 它起作用了,但是在我的 php 中,在第 27 行调用堆栈#TimeMemoryFunctionLocation 10.0004372896{main}() 上的 C:\wamp64\www\tedx\ArticleImage\index.php 中给我这个错误图像... \index.php:0 ">