MySQL 连接两个表时的大小写

MySQL Case when joining two tables

我有一个关于 mySQL 的问题:

我有两张桌子。

Table 1

table 2 中,我有相同的 5 个 idprojet,但有不同的 datedebut 和不同的 datefin。

我需要找到一种方法来了解 table2 中每个项目的较小 "datedebut" 是否小于 table1 中的首发日期,以及最大的 "datefin" ] table2 中的每个项目都大于 table1 中的 datefin。

我写了这个请求

SELECT table1.idprojet,
case when table1.datedebut < table2.tab2min then 'False'
else 'True' end as dateDebutComparison,
case when table2.dateFin > table1.dateFin then 'True'
else 'False' end as dateFinComparison
FROM table1, table2
JOIN (select table2.idProjet, MIN(dateDEBUT) tab2min, MAX(dateFIN) tab2max FROM table2 GROUP BY idProjet) table2
ON table2.idProjet = table1.idProjet

但它给了我以下错误:

Error Code: 1052. Column 'table2.idProjet' in on clause is ambiguous

输出类似于

table2 不需要出现在您的主查询中。
下面的查询应该是正确的。我更改了子查询别名以避免与 table2 table 名称混淆。

SELECT 
    table1.idprojet,
    CASE WHEN table1.datedebut < minMaxTable2.tab2min THEN 'False' ELSE 'True' END AS dateDebutComparison,
    CASE WHEN minMaxTable2.tab2max > table1.dateFin THEN 'True' ELSE 'False' END AS dateFinComparison
FROM table1
     JOIN (SELECT table2.idProjet, MIN(table2.dateDEBUT) tab2min, MAX(table2.dateFIN) tab2max 
           FROM table2
           GROUP BY table2.idProjet
     ) minMaxTable2
ON minMaxTable2.idProjet = table1.idProjet