Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 查询得到的结果太多,无法连接_Mysql - Fatal编程技术网

Mysql 查询得到的结果太多,无法连接

Mysql 查询得到的结果太多,无法连接,mysql,Mysql,我得到了大量的行,但我的初始(左)表“challenges_day3”只有一行 SELECT *,challenges_day3.feedback AS feedback_d3,challenges_day3.feedback_please AS feedback_please_d3 FROM challenges_day3 LEFT JOIN challengers ON challenges_day3.code_name=challengers.code_name LEFT JOIN c

我得到了大量的行,但我的初始(左)表“challenges_day3”只有一行

SELECT *,challenges_day3.feedback AS feedback_d3,challenges_day3.feedback_please AS feedback_please_d3
FROM challenges_day3 
LEFT JOIN challengers ON challenges_day3.code_name=challengers.code_name 
LEFT JOIN challenges_day1 ON challengers.code_name=challenges_day1.code_name 
LEFT JOIN challenges_day2 ON challenges_day1.code_name=challenges_day2.code_name

我只希望得到一行结果。我使用left join来实现这一点是错误的吗?

如果连接表中有多个匹配项,每个匹配项都将返回自己的行。例如,如果c3.code_名称为“James Bond”,且挑战者中有两行代码名为“James Bond”,则您将得到两行

如果您希望每个表的代码名都是唯一的,那么应该在表架构中将其标记为唯一的。更好的是,挑战者不应该被引用他们的名字(可以更改),而应该被引用他们的ID作为参考

然后使用ID来加入,该ID不会更改,并且对于每个表都是唯一的

SELECT
  *,
  challenges_day3.feedback AS feedback_d3,
  challenges_day3.feedback_please AS feedback_please_d3
FROM challenges_day3 c3
LEFT JOIN challengers c ON c3.challenger_id = c.id
LEFT JOIN challenges_day1 c1 ON c1.challenger_id = c3.challenger_id
LEFT JOIN challenges_day2 c2 ON c2.challenger_id = c3.challenger_id

非常感谢。是否有一种方法可以仅获取处于挑战中的行数_day3@ScotNery
从第3天的挑战中选择计数(*)
谢谢!独特性是我的问题!我在第一天和第二天有很多重复的代码名!
SELECT
  *,
  challenges_day3.feedback AS feedback_d3,
  challenges_day3.feedback_please AS feedback_please_d3
FROM challenges_day3 c3
LEFT JOIN challengers c ON c3.challenger_id = c.id
LEFT JOIN challenges_day1 c1 ON c1.challenger_id = c3.challenger_id
LEFT JOIN challenges_day2 c2 ON c2.challenger_id = c3.challenger_id