现在我正在使用此查询,但它向我展示了dublicate&非重复列,我只想获得非重复的列,
<?
$queryy=mysql_query("SELECT
mybb_posts.pid, mybb_posts.subject,mybb_posts.message,mybb_posts.tid,
mybb_attachments.pid,mybb_attachments.aid
FROM mybb_posts
INNER JOIN mybb_attachments
USING(pid,pid)
ORDER BY `aid` DESC
LIMIT 7")or die($query."<br/><br/>".mysql_error());
while ($lista=mysql_fetch_array($queryy))
{
echo '
<img src="attachment.php?aid='.$lista["aid"].' " alt="" />
<h4><a href="#" >'.$lista["subject"].'</a></h4>
';
}
?>
答案 0 :(得分:0)
尝试在您的选择中使用DISTINCT。
SELECT DISTINCT
posts.pid,
posts.subject,
posts.message,
posts.tid,
attach.pid,
attach.aid
FROM mybb_posts post
INNER JOIN mybb_attachments attach
ON mybb_posts.pid = mybb_attachments.pid
ORDER BY `aid` DESC LIMIT 7
此DISTINCT查询应仅返回PID在两列中匹配的唯一结果。如果有多个与该PID相关的实体,则会插入另一行。
只有在实体上使用聚合函数时才能使用group by。例如:SELECT中的SUM(attach.aid)将允许您按PID分组
如果你为一条记录返回一堆不同的整数,并且不想要重复的行,你可以使用group by将结果加总成一行......
以下是描述我散文的参考资料。