MySQL Случай при соединении двух таблиц - PullRequest
0 голосов
/ 07 января 2020

У меня вопрос по поводу mySQL:

У меня есть две таблицы.

Table 1

Table 1

В table 2, у меня те же 5 idprojet, но с разными датами и разными датами.

Table 2

Мне нужно найти способ узнать, меньше ли «datedebut» для каждого проекта в table2 меньше, чем datedebut от table1, и если самый большой «datefin» для каждого проекта в table2 больше, чем datefin от table1.

Я написал этот запрос

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

Выходной сигнал будет что-то вроде

enter image description here

1 Ответ

1 голос
/ 07 января 2020

table2 не должно появляться в вашем основном запросе.
Следующий запрос должен быть правильным. Я изменил псевдоним подзапроса, чтобы избежать путаницы с именем таблицы table2.

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
...