Я пытаюсь построить внутреннее соединение в подзапросе. Я продолжаю ошибаться, говоря, что он не может снова открыть таблицу «t1».Внутреннее соединение MySQL в подзапросе
Это то, что я пытаюсь сделать в простом английском языке:
select all instances of "SystemHeader_Name" from "temp2" where "SystemHeader_Name" and "System_Value" are shared across "Tool_Name"
Это моя попытка:
SELECT t1.SystemHeader_Name FROM temp2 t1
INNER JOIN (
SELECT DISTINCT Tool_Name, SystemHeader_Name, System_Value FROM temp2
) AS t2 ON (t2.SystemHeader_Name = t1.SystemHeader_Name
AND t2.System_Value = t1.System_Value);
Как это сделать?
Пример
С:
Tool_Name,SystemHeader_Name,System_Value
t1,h1,v1
t1,h2,v2
t2,h1,v1
Результат должен быть:
h1
Выпуск
После некоторых более копать, я решил, что моя проблема была с временной таблицей , От this document: You cannot refer to a TEMPORARY table more than once in the same query.
Похоже, мне нужно разработать лучший метод, чем использовать временные таблицы. Спасибо за вашу помощь.
Вы имеете в виду, что имя_иденения одинаково в обеих таблицах? – collusionbdbh
Нет. Я пытаюсь найти пары SystemHeader_Name и System_Value. Я просто добавил пример, чтобы помочь прояснить ситуацию. – TehTechGuy
Простое соединение будет работать, так как оно докажет существование другой строки с тем же именем systemheader и system_value с другим именем инструмента в соответствии с моим кодом ниже. Добавьте DISTINCT, если вы хотите только одно имя systemheader_name. – collusionbdbh