У меня следующая проблема. Моя таблица (geo_table
) имеет следующую структуру:
foreign_table_id | foreign_table_name | some_other_fields...
foreign_table_name
хранит имена разных таблиц, а foreign_table_id
хранит идентификаторы в этих таблицах. Я хочу проверить, хранит ли строка в вышеупомянутой таблице действительную ссылку на какую-то другую таблицу. Таким образом, мне нужно выбрать строку из внешней таблицы, имя которой основано на строке, хранящейся в foreign_table_name
. Мой код не работал, потому что он имеет синтаксическую ошибку, но он ясно представляет, чего я хотел достичь:
SELECT foreign_table_id, foreign_table_name FROM `geo_table` gt
WHERE (
SELECT COUNT(*) FROM gt.foreign_table_name AS t
WHERE gt.foreign_table_id = t.uid
) > 0
Любая помощь будет высоко ценится