Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新手:mysql连接2个表来获取并计算结果_Mysql_Sql_Join_Count - Fatal编程技术网

新手:mysql连接2个表来获取并计算结果

新手:mysql连接2个表来获取并计算结果,mysql,sql,join,count,Mysql,Sql,Join,Count,我正在尝试连接两个表并计算结果。 我有这些桌子 SET NAMES utf8; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for `segments` -- ---------------------------- DROP TABLE IF EXISTS `segments`; CREATE TABLE `segments` ( `id` int(11) NOT NULL

我正在尝试连接两个表并计算结果。 我有这些桌子

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `segments`
-- ----------------------------
DROP TABLE IF EXISTS `segments`;
CREATE TABLE `segments` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `substr_id` int(255) NOT NULL,
  `substr` varchar(255) NOT NULL,
  `count` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

-- ----------------------------
--  Records of `segments`
-- ----------------------------
BEGIN;
INSERT INTO `segments` VALUES ('1', '1', 'book', '2'), ('2', '2', 'ooki', '1'), ('3', '2', 'okin', '1'), ('4', '2', 'king', '1');
COMMIT;

-- ----------------------------
--  Table structure for `words`
-- ----------------------------
DROP TABLE IF EXISTS `words`;
CREATE TABLE `words` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `substr_id` int(11) NOT NULL,
  `word` varchar(255) NOT NULL,
  `cleaned` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

-- ----------------------------
--  Records of `words`
-- ----------------------------
BEGIN;
INSERT INTO `words` VALUES ('1', '1', 'book', '0'), ('2', '2', 'booking', '0'), ('3', '2', 'booking', '0'), ('4', '2', 'booking', '0');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;
用sql+数据更改了问题

我试图:

 SELECT words with there count from segments.count based upon there substr_id. 

有人能帮我完成吗?我不太擅长SQL,有红色文档和一些教程,但我不太明白如何在一个查询中完成上述所有操作。

为了计算查询结果,需要使用聚合函数COUNT()


有许多链接可以对此有所帮助,但类似的内容应该会有所帮助。

为了计算查询结果,您需要使用聚合函数COUNT()

 SELECT word, count
   FROM words NATURAL JOIN segments;
有许多链接可以帮助您实现这一点,但类似的内容应该会有所帮助

 SELECT word, count
   FROM words NATURAL JOIN segments;
我们应该做到这一点。我建议做更多的研究。)


我们应该做到这一点。我建议做更多的研究。)

您可能需要某种连接条件,否则您将得到笛卡尔积,但这应该让您开始:

SELECT COUNT(*)
FROM words
JOIN count --add an ON condition here unless you want a cartesian product
有点不清楚你想要做什么,但如果这不是你想要的,请随时澄清


祝你好运

您可能需要某种连接条件,否则您将得到笛卡尔积,但这应该让您开始:

SELECT COUNT(*)
FROM words
JOIN count --add an ON condition here unless you want a cartesian product
有点不清楚你想要做什么,但如果这不是你想要的,请随时澄清


祝你好运

你是说他们的数量和发生的次数一样吗?你能澄清一下你想算什么吗?我可以看到一列
count
。你想要记录计数还是什么?你是说它们的计数和发生的次数一样吗?你能澄清一下你想算什么吗?我可以看到一列
count
。你想让唱片也有价值吗?好的,谢谢,这是我的诀窍,我选择了一个人,所以是基于最好+最低点。很高兴这有帮助。通常有很多不同的方法来实现这一点,并且
连接
。请记住,
NATURAL join
仅在两个表都有一个链接它们的通用命名字段的情况下才起作用,在本例中为
id
。好的,这就成功了,我不得不根据最佳+最低点来选择某人。很高兴这有帮助。通常有很多不同的方法来实现这一点,并且
连接
。请记住,
NATURAL join
仅在两个表都有一个链接它们的通用命名字段(在本例中为
id
)时才起作用。