Мне нужно выполнить поиск с использованием SQL, чтобы увидеть, соответствуют ли эти 3 столбца моему идентификатору. Я попробовал JOIN, но в столбцах нет точки соединения. Нет четкой корреляции. Я также пытался использовать UNION, но у них разное количество столбцов и разных типов столбцов. В принципе, мне нужно окунуться в 1 таблицу, чтобы получить ценность. Используйте это значение, чтобы окунуться во вторую таблицу, чтобы получить дополнительное значение. Затем используйте оба этих значения вместе с жестко заданным значением, чтобы окунуться в третью таблицу, чтобы получить уникальное значение. Затем используйте это уникальное значение, чтобы окунуться в четвертую таблицу, чтобы получить результаты, соответствующие уникальному значению. Вот запрос, который я в настоящее время:SQL-корреляция с таблицами, которые не связаны напрямую
SELECT * FROM DEF_TABLE
WHERE DEF_ID IN (
SELECT DEF_ID FROM DESCRIPTION_TABLE
WHERE MY_TYPE = 'EQP'
AND COL_TYPE = a
AND COL_NAME = b
IN (SELECT COL_TYPE as a, COL_NAME as b FROM TYPE_TABLE WHERE COL_TYPE IN
(SELECT COL_TYPE FROM EQP_TABLE WHERE ID = 9000)));
EDIT: Я обнаружил, что работает COL_TYPE и COL_NAME проверки, как индивидуальный называет это работает, но очень медленно. Есть ли другой способ?
SELECT * FROM DEF_TABLE
WHERE DEF_ID IN (
SELECT DEF_ID FROM DESCRIPTION_TABLE
WHERE MY_TYPE = 'EQP'
AND COL_TYPE IN (SELECT COL_TYPE FROM TYPE_TABLE WHERE COL_TYPE IN
(SELECT COL_TYPE FROM EQP_TABLE WHERE ID = 9000))
AND COL_NAME IN (SELECT COL_NAME FROM TYPE_TABLE WHERE COL_TYPE IN
(SELECT COL_TYPE FROM EQP_TABLE WHERE ID = 9000)));
Спасибо так много! Это работало как прелесть. Я не рассматривал попытку сделать соединение внутри такого запроса. – jDub9