首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL联接查询中添加序列号

在MySQL联接查询中添加序列号
EN

Stack Overflow用户
提问于 2015-09-29 11:04:52
回答 3查看 1.6K关注 0票数 0

我看到了许多将序列号添加到简单表中的答案,但在这里,我想将串行密钥添加到联接查询中。我试过这个查询

代码语言:javascript
复制
SELECT  *,@c:=@c+1 AS serialNumber 
FROM 
(SELECT @c:= 0) AS c,
(
  SELECT a.ai_id,a.ai_images,a.user_id,a.ai_like_count,a.ai_comment_count,a.ai_caption,u.display_name,u.first_name,u.email,a.ai_created 
  FROM album_images AS a 
  LEFT JOIN users AS u 
  ON a.user_id=u.user_id 
  WHERE u.email_validation=1 
  AND u.status=1 
  ORDER BY a.ai_created DESC
) AS t 
WHERE 1 
GROUP BY user_id 
ORDER BY ai_created DESC

但我没有按适当的顺序得到数字,而是像这样的1,5,8。我想要像这样的1,2,3,4

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-29 11:40:32

尝试这个查询

代码语言:javascript
复制
 set @c=0;
 SELECT @c:=@c+1 AS serialNumber,tab.* 
 FROM (
 SELECT * FROM
  (
   SELECT     a.ai_id,a.ai_images,a.user_id,a.ai_like_count,a.ai_comment_count,a.ai_caption,u.display_name,u.first_name,u.email,a.ai_created 
   FROM album_images AS a 
   LEFT JOIN users AS u ON a.user_id=u.user_id 
   WHERE u.email_validation=1 AND u.status=1 ORDER BY a.ai_created DESC) AS t GROUP BY user_id ORDER BY ai_created DESC
) AS tab
票数 0
EN

Stack Overflow用户

发布于 2015-09-29 11:25:55

在分配序列号之后,您将通过ai_created对结果集进行排序,这将导致问题的发生.在内部查询中使用排序。这是一个例子:

代码语言:javascript
复制
SELECT  *,@c:=@c+1 AS serialNumber 
    FROM 
    (SELECT @c:= 0) AS c,
    (
      SELECT a.ai_id,a.ai_images,a.user_id,a.ai_like_count,a.ai_comment_count,a.ai_caption,u.display_name,u.first_name,u.email,a.ai_created 
      FROM album_images AS a 
      LEFT JOIN users AS u 
      ON a.user_id=u.user_id 
      WHERE u.email_validation=1 
      AND u.status=1 
      GROUP BY a.user_id 
      ORDER BY a.ai_created DESC
    ) AS t 
票数 0
EN

Stack Overflow用户

发布于 2019-04-24 05:18:44

可以使用UNION操作将序列号(SL)添加到查询中。下面是KOHA ILS的报告的例子:

代码语言:javascript
复制
enter code here:  SELECT  @c:=@c+1 AS 'SL' , t.* 
FROM 
(SELECT @c:= 0 AS cc) AS c,
(
SELECT biblio.biblionumber AS BiblioNumber,
GROUP_CONCAT(items.barcode  ORDER BY items.barcode SEPARATOR ',\r\n') AS 'Accession #', 
biblio.title AS Title, 
biblio.author AS 'Main Author',  
COUNT(items.barcode) AS Qty, 
SUM(items.price) AS 'Price (Tk.)', 
@bill_number :=items.stocknumber AS 'Bill No.' FROM biblio LEFT JOIN items ON ( biblio.biblionumber = items.biblionumber ) 
WHERE 
items.stocknumber =  <<Bill Number>>
GROUP BY biblio.biblionumber
) AS t UNION 
SELECT '','','','','','<b>Grand Total:</b>', SUM(items.price),'' FROM items WHERE items.stocknumber LIKE @bill_number GROUP BY items.stocknumber UNION SELECT '','','','','','<b>Net Payable Amount:</b>', @grand_total:=SUM(items.price),'' FROM items WHERE items.stocknumber LIKE @bill_number  GROUP BY items.stocknumber UNION SELECT '','','<b>Amount Chargeable:</b>', CONCAT("<b>(In Word)"," Tk. ", number_to_words(@grand_total),"Only </b>"),'', '', '',''  UNION
SELECT '','','<b>Print Date-Time:</b>', CONCAT("<b>",NOW(),"</b>"),'', '', '','';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32842281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档