gpt4 book ai didi

mysql - 连接两个表,按两个不同的列输入和排序

转载 作者:行者123 更新时间:2023-11-30 00:45:20 25 4
gpt4 key购买 nike

我有两个表:

bsl_prioritas_perasat                 rek_perasat
+=========+========+=====+ +=======+==========+======+
|RUPER |CODE |SORT | |CODE |NAME |SUB |
+=========+========+=====+ +=======+==========+======+
|CB2RA |R0004 |1 | |R0004 |JASA 1 |AKA |
|CB2RA |R0006 |2 | |R0006 |JASA 2 |AKB |
|CB3RI |R0006 |1 | |R0008 |JASA VK |VK |
|CB3RI |R0008 |2 | |R0026 |ACCOMT |AKOM |
+=========+========+=====+ +=======+==========+======+

输入将为RUPERSUB

如果bsl_prioritas_perasat上存在RUPER,那么它将按SORTNAME排序,并且如果 bsl_prioritas_perasat 上的 RUPER 的 >CODE 不存在/NULL,它将放在最后

如果RUPER不存在,它将忽略SORT并按NAME排序

示例:

1st                    2nd                    3rd
RUPER=CB2RA, SUB=AK RUPER=CB3RI, SUB=AK RUPER=CB5DB, SUB=AK
Result: Result: Result:
+==========+ +==========+ +==========+
|NAME | |NAME | |NAME |
+==========+ +==========+ +==========+
|JASA 1 | |JASA 2 | |ACCOMT |
|JASA 2 | |ACCOMT | |JASA 1 |
|ACCOMT | |JASA 1 | |JASA 2 |
+==========+ +==========+ +==========+

我怎样才能得到这个结果?

最佳答案

您应该能够将 LEFT JOINIFNULL 和默认排序值一起使用,例如:

SELECT name, sort
FROM (SELECT r.NAME, IFNULL(b.SORT, 100),
FROM rek_perasat AS r LEFT JOIN bsl_prioritas_perasat AS b
ON r.CODE = b.CODE AND b.RUPER = ?
WHERE r.SUB LIKE ? + '%');

更新:添加了子选择。

关于mysql - 连接两个表,按两个不同的列输入和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com