gpt4 book ai didi

mysql - 将 Count() 命令与 Join 结合使用时遇到问题

转载 作者:行者123 更新时间:2023-11-29 17:31:05 24 4
gpt4 key购买 nike

我注意到有很多类似的问题,但在尝试将他们的答案付诸实践后,似乎没有任何效果。
我目前正在尝试做一项围绕 MYSQL 提供的世界数据库的任务。 [1]https://dev.mysql.com/doc/world-setup/en/

目前,我正在尝试选择两个表内并通过国家/地区代码列提取的数据。这工作得很好,但是一旦我尝试将 count 命令添加到代码中,事情就开始失败。

这是我到目前为止所拥有的:

SELECT c.name,
c.continent,
c.population,
c.code, cy.name as capital_city
count(cy.countrycode)
from country c
left join city cy
on c.code=cy.countrycode AND c.capital = cy.id
where cy.countrycode = "GBR"
limit 1;

我也尝试过:

SELECT c.name,
c.continent,
c.population,
c.code, cy.name as capital_city
(Select Count (*)
from cy
where countrycode ="GBR") as total_cities
from country c
left join city cy
on c.code=cy.countrycode AND c.capital = cy.id
where cy.countrycode = "GBR"
limit 1;

我对 MYSQL 还很陌生,所以任何关于如何编写更好的代码的指针都会很棒,但我真的很想知道如何将一个 Total_cities 值添加到我的查询中,该查询已经从两个表中提取其他所需数据(在本例中为有关人口、国家名称、国家代码、首都的数据。

数据库结构:
国家/地区表:
代码
大陆
地区
人口
国民生产总值
国民生产总值
本地名称
资本
代码2

城市表:
身份证号
姓名
国家代码区
人口

最佳答案

我想您会想要知道英国的国家名称、大陆、人口、代码、首都和城市数量。

您不需要在此处使用 LIMIT,因为一个国家只有一个首都。其次,要获取您应该从表 city 中读取的城市总数,而不是 cy

SELECT
c.name, c.continent, c.population, c.code, cy.name capital_city,
(SELECT
COUNT(*)
FROM city WHERE countrycode ='GBR') as total_cities
FROM
(SELECT
name, continent, population, code, capital
FROM country WHERE countrycode='GBR') c
LEFT JOIN
city cy
ON c.code=cy.countrycode AND c.capital=cy.id;

关于mysql - 将 Count() 命令与 Join 结合使用时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50653435/

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