gpt4 book ai didi

sql-server - 如何在 SQl Server 2008 中选择不同的字段,但仅针对多个字段中的一个字段?

转载 作者:行者123 更新时间:2023-12-02 09:52:02 24 4
gpt4 key购买 nike

我有一个疑问:

SELECT Content.content_name, Language2.Name, Language2.language_id, 
Content.id, Content.content_description,
FROM Language AS Language2
LEFT JOIN contents AS Content ON (Language2.language_id = Content.language_id)

如何仅选择不同的 content_name?

最佳答案

你这样做:

SELECT DISTINCT Content.content_name
FROM Language AS Language2
LEFT JOIN contents AS Content ON (Language2.language_id = Content.language_id)

那么为什么这不能回答你的问题呢?

让我们考虑以下数据(仅前两列):

content_name      Name
XXXXX 1234
XXXXX 5678

SELECT DISTINCT 意味着您只需要一行,但是您想要 Name 是什么?

您需要做的是重写代码以使用GROUP BY并为其他列选择适当的聚合函数:

SELECT
Content.content_name,
MIN(Language2.Name) AS Name,
MIN(Language2.language_id) AS language_id,
MIN(Content.id) AS id,
MIN(Content.content_description) AS content_description,
FROM
Language AS Language2
LEFT JOIN contents AS Content
ON (Language2.language_id = Content.language_id)
GROUP BY
Content.content_name

现在,这可能也不会产生您想要的结果,但有一件事是肯定的,您不能欺骗数据库引擎“选择要返回的行之一,我不在乎是哪一行。”

关于sql-server - 如何在 SQl Server 2008 中选择不同的字段,但仅针对多个字段中的一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720830/

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