gpt4 book ai didi

mysql - 如何让 MS SQL 创建具有唯一 ID 的 View ?

转载 作者:行者123 更新时间:2023-11-29 14:37:43 25 4
gpt4 key购买 nike

背景:

我首先被要求做一个使用mysql作为数据库的网站,完成并发送后,客户要求我将其转换为mssql,以及3层。

我完成了在服务器之间传输数据的类和函数,因此 3 层位大约完成了一半。我现在正在努力解决的是MsSQL。

问题:

问题的 MySQL 版本如下所示:

select a.id as a_id, a.first_name, a.last_name, a.agent_code,
b.id as b_id, b.user_id, b.status_admin
from tbl_user a
inner join tbl_testimonia b
on a.id = b.user_id
where b.status_admin=0
group by a.id
order by b.id desc

它的作用是返回尚未批准的推荐,并分组到每个用户;

<小时/>

我被困的地方:

我无法将其转换为 MSSQL

我的最佳尝试:

  • 创建 View ;

如:

    create view test as
(
select a.id as a_id, a.first_name, a.last_name, a.agent_code,
b.id as b_id, b.user_id, b.status_admin
from tbl_user a inner join tbl_testimonia b on a.id = b.user_id
where b.status_admin=0 and a.id in
(
select a.id from tbl_user a
inner join tbl_testimonia b
on a.id = b.user_id
where b.status_admin=0
group by a.id
)
)

这选择了我想要的,但是创建 View 的id字段无法分组,这意味着id字段不是唯一的并且可以具有相同的值。

我想到目前为止我的问题是,如何在 View 中唯一选择 id 字段?当然我可以用 PHP 做到这一点,但一个月前我第一次遇到这个问题时我就可以做到这一点。

我已经尝试寻找答案有一段时间了,但似乎找不到我的问题特有的答案

  • 编辑:MSSQL 不起作用,因为即使子查询选择唯一的 ID,主查询中的 in 语句也会使这变得无关紧要
  • 编辑:示例输出::~(在 MySql 中,第三个字段被省略)

    | a_id  |  firstN | LastN |  agent_code  |   b_id  |  user_id |status_admin|
    +--------------------------------------------------------------------------+
    | 32 | fn1 | ln1 | AC123213 | 14 | 32 | 0 |
    | 41 | fn2 | ln2 | 12345678 | 15 | 41 | 0 |
    | 32 | fn1 | ln1 | AC123213 | 16 | 32 | 0 |
  • 编辑:问题已解决非常感谢 Lieven 的简单回答

最佳答案

正如您自己所解释的,与 SQL Server 不同,MySQL 允许使用像这样的未聚合表达式进行分组

SELECT  *
FROM mytable
GROUP BY
column

由于 GROUP BY 中的未聚合表达式返回每个组中的任意记录,并且如果值变化则不应使用,您应该能够使用以下语句作为 SQL Server 中的等效语句

select a.id as a_id
, MIN(a.first_name)
, MIN(a.last_name)
, MIN(a.agent_code)
, MIN(b.id as b_id)
, MIN(b.user_id)
, MIN(b.status_admin)
from tbl_user a
inner join tbl_testimonia b on a.id = b.user_id
where b.status_admin=0
group by
a.id
order by
b.id desc

关于mysql - 如何让 MS SQL 创建具有唯一 ID 的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8654489/

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