如何使用SQL GROUP BY子句显示单独的列唯一值

时间:2017-03-19 00:59:29

标签: php mysql phpmyadmin

好吧,我今晚不能再对此嗤之以鼻。以为我会提出这个问题。也许这是一个我还没有遇到的简单答案。

我在PHPMyAdmin中有许多相关的表:pubtopics,pubtypes和pubtitles。

Pubtitles是主表(表1),pubtopics是为主题分配数字的简单列表(表2),pubtypes是另一个为发布类型分配数字的简单列表(表3)。

我尝试创建一个按类型列出每个发布的页面(表3中所有发布的列表),但也显示了可以分配给唯一pubtitle的多个主题(表2)(表1) ),并将每个主题(表2)链接到该主题列出的出版物。

pubtopics的数据看起来像这样:

pubtopics

我正在寻找的是这样一条线:

2016年6月15日|比较数据报告|教育|财政事务

如果日期是链接,则pub类型是一个链接,每个连接的问题都是唯一的链接。

当我尝试列出特定出版物类型的所有出版物时,到目前为止我可以生成的所有出版物都是具有多个重复条目的列表(因为可以解决几个主题)。我已尝试过group_concat和group by,但这并不允许我为每个主题设置单独的链接。

我玩过爆炸和阵列,但它有点超出了我的专业知识。任何出色的解决方案?

代码如下:

elseif (isset($_GET['type'])) {
  $var3_getDisplay4 = $_GET['type'];
  $query_getDisplay = sprintf("SELECT

  DATE_FORMAT(publicationsnew.date, '%%Y') AS archive,
  DATE_FORMAT(publicationsnew.date, '%%M %%e, %%Y') AS pubdate,

  pub_type.number AS typelink,
  pub_type.type AS pubtype,

  GROUP_CONCAT(categories.category_name ORDER BY categories.category_name SEPARATOR ' | ') AS category,

  categories.category_id AS catlink,

  publicationsnew.title,
  publicationsnew.author,
  publicationsnew.imagelink,
  publicationsnew.description

FROM 

pub_cat

LEFT JOIN publicationsnew ON (pub_cat.pub_id = publicationsnew.pub_id)
LEFT JOIN categories ON (pub_cat.category_id = categories.category_id)
LEFT JOIN pub_type ON (publicationsnew.type = pub_type.number)

  WHERE pub_type.number = %s

  GROUP BY publicationsnew.pub_id

  ORDER BY publicationsnew.date DESC",



  GetSQLValueString($var3_getDisplay4, "text"));

并在身体中:

<?php do { ?>

      <h2><a href="test.php?archive=<?php echo $row_getDisplay['archive']; ?>"><?php echo $row_getDisplay['pubdate']; ?></a> | <a href="test.php?type=<?php echo $row_getDisplay['typelink']; ?>"><?php echo $row_getDisplay['pubtype']; ?></a> | 




     <a href="test.php?topic=<?php echo $row_getDisplay['catlink']; ?>">

     <?php echo $row_getDisplay['category']; ?>

     </a>

     </h2>
      <p class="pubtitle"><?php echo $row_getDisplay['title']; ?></p>

  <?php echo ($row_getDisplay['author']); ?>  

  <?php echo ($row_getDisplay['imagelink']); ?>

   <div class="pubdescription"><?php echo ($row_getDisplay['description']); ?></div>

    <div class="clear"></div>



     <hr>

   <?php } while ($row_getDisplay = mysql_fetch_assoc($getDisplay)); ?>

当天烧光了。继续......

0 个答案:

没有答案