gpt4 book ai didi

mysql - INNER JOIN MySQL 空条目

转载 作者:行者123 更新时间:2023-11-29 05:30:43 26 4
gpt4 key购买 nike

我得到了三个表,cours、documents 和 cours_document。

我想选择所有没有文件的类(class)。我试过这个:

SELECT cours.id AS cid, cours.name AS cname, DATE_FORMAT(cours.date,"%H:%i") AS cdate, DATE_FORMAT(cours.date,"%a") AS jour,sessions.id AS sid,sessions.name AS sname,sessions.restant,session_cours.session_id,session_cours.cours_id, ISNULL(cours.video_id) AS isVid
FROM cours,sessions,session_cours
INNER JOIN cours_document ON cours.id=cours_document.cours_id AND COUNT(cours_id)=0
WHERE cours.prof_id = :prof_id
AND sessions.prof_id = :prof_id
AND session_cours.cours_id=cours.id
AND sessions.id=session_cours.session_id
AND DATE_FORMAT(cours.date,"%Y-%m-%d") >= :date_min
AND DATE_FORMAT(cours.date,"%Y-%m-%d") <= :date_max
GROUP BY cours.id ORDER BY date ASC

但是这个查询不起作用。 SQL 告诉我:Column not found: 1054 Unknown column cours.id in on clause (500 Internal Server Error)

第一个问题,这个查询可行吗? (我的意思是 ON [...] AND COUNT(cours_id)=0 )

而且,为什么会出现这个错误?我的意思是定义了 cours.id,然后选择,cours 在 FROM 子句上......我尝试使用别名(cid),MySQL 回答我一样......

最佳答案

此查询无效。您正在尝试 INNER JOIN 一个表,其中 count(...) = 0,因此没有要加入的记录!

正确的做法是:

SELECT cours.id AS cid, cours.name AS cname, DATE_FORMAT(cours.date,"%H:%i") AS cdate, DATE_FORMAT(cours.date,"%a") AS jour,sessions.id AS sid,sessions.name AS sname,sessions.restant,session_cours.session_id,session_cours.cours_id, ISNULL(cours.video_id) AS isVid
FROM cours,sessions,session_cours
WHERE cours.prof_id = :prof_id
AND sessions.prof_id = :prof_id
AND session_cours.cours_id=cours.id
AND sessions.id=session_cours.session_id
AND DATE_FORMAT(cours.date,"%Y-%m-%d") >= :date_min
AND DATE_FORMAT(cours.date,"%Y-%m-%d") <= :date_max
AND (SELECT COUNT(*) FROM cours_document WHERE cours.id=cours_document.cours_id) = 0
GROUP BY cours.id ORDER BY date ASC

关于mysql - INNER JOIN MySQL 空条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131281/

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