Mysql 如何删除重复的内容?
我在学习ColdFusion。我想展示一篇文章和3张图片。我的代码可以编译,但它显示了文章3次和3张图片。我只想把这篇文章展示一次。有人能看一下我的代码并给我一个提示吗?谢谢你的时间Mysql 如何删除重复的内容?,mysql,coldfusion,coldfusion-9,Mysql,Coldfusion,Coldfusion 9,我在学习ColdFusion。我想展示一篇文章和3张图片。我的代码可以编译,但它显示了文章3次和3张图片。我只想把这篇文章展示一次。有人能看一下我的代码并给我一个提示吗?谢谢你的时间 <html> <head> <title>Hello</title> </head> <body> <h3>Full Article View</h3> <CFQUERY NAME="my
<html>
<head>
<title>Hello</title>
</head>
<body>
<h3>Full Article View</h3>
<CFQUERY NAME="myQuery1" Datasource="mydb" >
SELECT *
FROM articles
INNER JOIN article_image_mapping ON articles.article_ID = article_image_mapping.aim_articleID
INNER JOIN images ON aim_imageID = images.image_ID
WHERE articles.article_ID = #URL.ID#
</CFQUERY>
<div align="left">
<cfoutput query="myQuery1">
#ucase(myquery1.article_title)# <br/>
-------------------------------------<br>
#myquery1.article_author# :: #myquery1.article_date#<br/>
#myquery1.article_content#<br/>
#myquery1.image_thumbpath#<br/>
</cfoutput>
</div>
</body>
</html>
您需要在查询中使用group属性,并在查询中输入ORDER BY。我还建议只列出SELECT语句中需要的列
<CFQUERY NAME="myQuery1" Datasource="mydb" >
SELECT article_title, article_author, article_content, image_thumpath
FROM articles
INNER JOIN article_image_mapping ON articles.article_ID = article_image_mapping.aim_articleID
INNER JOIN images ON aim_imageID = images.image_ID
WHERE articles.article_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#URL.ID#">
ORDER BY article_title <!--- this is important! --->
</CFQUERY>
<div align="left">
<cfoutput query="myQuery1" group="article_title"><!--- show the article_title once --->
#ucase(myquery1.article_title)# <br/>
-------------------------------------<br>
<cfoutput><!--- loop through all results with same article title --->
#myquery1.article_author# :: #myquery1.article_date#<br/>
#myquery1.article_content#<br/>
#myquery1.image_thumbpath#<br/>
</cfoutput>
</cfoutput>
</div>
Matt是对的,您正在cfoutput中查找group属性。尽管我认为内部cfoutput循环的位置并不是您想要的。我想这就是你想要实现的
<!--- use the group attribute to show the article once --->
<cfoutput query="myQuery1" group="article_id">
#ucase(myquery1.article_title)# <br/>
-------------------------------------<br>
#myquery1.article_author# :: #myquery1.article_date#<br/>
#myquery1.article_content#<br/>
<!--- use an inner cfoutput to loop over the associated images --->
<cfoutput>
#myquery1.image_thumbpath#<br/>
</cfoutput>
</cfoutput>
内部cfoutput中的任何内容都将为查询中的每条记录显示一次。具有group属性的外部cfoutput中的项目在每个组中只显示一次,因此,如果您的组是article_id,则对于给定的article_id,它只显示一次
在这种特殊情况下,articles表中应该只有一条记录,因此不必担心排序顺序,因为图像将全部附加到该记录,这将导致它们在结果查询*中彼此相邻。但是,如果您要在其他列上分组,那么Matt是正确的,您需要确保记录的排序正确-如果分组的记录在查询中不是相邻的,则它们不会在输出中分组
无关:我还建议您在上面的cfquery中使用article_id,因为数字列特别容易受到影响
*只要你没有做一些奇怪的事情,比如按image_thumbpath列排序——尽管从技术上讲,SQL标准说,除非在user2203774学习时在order by子句中明确指定它,否则不能保证任何类型的排序,请注意并在CFQUERY中使用cfqueryparam。请不要信任URL或表单范围中的任何值。