Mysql查询(相同)使用不同的结果集返回不同的结果顺序
我对Mysql世界很天真….:我试图使用连接从表中查询 在这里,我遇到了结果集的问题…表结构如下 下面Mysql查询(相同)使用不同的结果集返回不同的结果顺序,mysql,Mysql,我对Mysql世界很天真….:我试图使用连接从表中查询 在这里,我遇到了结果集的问题…表结构如下 下面 VIDEO_XXXXX | Field | Type | Null | Key | Default | Extra | | VIDEO_ID | int(255) | TAG_NAME | varchar(1000) | SHOP_ID | va
VIDEO_XXXXX
| Field | Type | Null | Key | Default | Extra |
| VIDEO_ID | int(255)
| TAG_NAME | varchar(1000)
| SHOP_ID | varchar(100) FK
| LOVES | int(255)
| VIDEO_URL | varchar(1000)
| UPLOADED_DATE |
PLACE_TABLE...
SHOP_ID | varchar(100) PK
查询看起来像
SELECT V.SHOP_ID
FROM VIDEO_xxxx V
JOIN STUB_xxxx_TABLE S ON S.SHOP_ID=V.SHOP_ID
WHERE S.COUPON_STATUS='REDEEMED'
GROUP BY V.SHOP_ID
ORDER BY COUNT(S.COUPON_GENERATED_ID) DESC;
结果集如下所示
+-----------+
| SHOP_ID |
+-----------+
| 001 |
| 004 |
| 005 |
| 003 |
| 002 |
第二个问题是
SELECT V.SHOP_ID
FROM SECOND_TABLE V
JOIN STUB_xxxx_TABLE S ON S.SHOP_ID=V.SHOP_ID
WHERE S.COUPON_STATUS='REDEEMED'
GROUP BY V.SHOP_ID
ORDER BY COUNT(S.COUPON_GENERATED_ID) DESC;
结果集是
+--------+
| SHOP_ID|
+--------+
|001 |
|004 |
|003 |
|002 |
005 |
我想知道为什么店铺id的顺序会混乱…::如果您能提供任何帮助,我们将不胜感激…:,您可以将COUNTS.COUPON\u GENERATED\u id表达式添加到where子句中:
SELECT V.SHOP_ID,COUNT(S.COUPON_GENERATED_ID)
FROM SECOND_TABLE V
JOIN STUB_xxxx_TABLE S ON S.SHOP_ID=V.SHOP_ID
WHERE S.COUPON_STATUS='REDEEMED'
GROUP BY V.SHOP_ID
ORDER BY COUNT(S.COUPON_GENERATED_ID) DESC;
如果不希望在结果中包含此额外值,可以使用子查询:
SELECT SHOP_ID
FROM (
SELECT V.SHOP_ID,COUNT(S.COUPON_GENERATED_ID) AS CNT
FROM SECOND_TABLE V
JOIN STUB_xxxx_TABLE S ON S.SHOP_ID=V.SHOP_ID
WHERE S.COUPON_STATUS='REDEEMED'
GROUP BY V.SHOP_ID
)
ORDER BY CNT DESC
即使我选择shop\u id,它也会返回不同的集合…:我看到您正在从不同的表中进行选择。。。视频xxxx和第二张表格是同一张表格吗?不,它们是不同的一张:是因为结构的原因吗…?尝试更改SELECT子句:SELECT V.SHOP\U ID,CountS.COUPON\u GENERATED\u ID只是为了确保订购是您所期望的……噢,如果我在查询中输入CountS.COUPON\u GENERATED\u ID,它将返回预期结果感谢您的帮助……但我不需要CountS.COUPON\u GENERATED\u ID在结果集中……:我能做什么。。。??