Я столкнулся с проблемой, когда переносил свой код из базы данных SQLite в Core Data.
Данные, которые я использую, поступают из существующей базы данных и поэтому имеют все отношения, определенные с использованием идентификатора каждой из таблиц (или объектов, которые я сейчас использую Core Data). Моя проблема в том, что я хочу выполнить запрос к одной таблице, а затем использовать этот результат для распространения данных, чтобы получить все остальные данные, которые мне нужны.
Исходная база данных выглядит так:
CREATE TABLE TecAccessPoints (MAC varchar NOT NULL PRIMARY KEY UNIQUE,ZoneID integer NOT NULL,Floor integer);
CREATE TABLE Zones (ID integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,ZoneName varchar NOT NULL,BuildingID integer,ZoneDescription varchar);
CREATE TABLE Buildings (ID integer NOT NULL PRIMARY KEY AUTOINCREMENT,BuildingName varchar NOT NULL,CampusID integer NOT NULL,BuildingDescription varchar,Long float,Lat float);
CREATE TABLE Campuses (ID integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,CampusName varchar NOT NULL,CampusDescription text, Latitude float, Longitude float);
Мой оригинальный запрос SQL:
SELECT DISTINCT Zones.ID, Zones.ZoneName, Buildings.ID, Buildings.BuildingName, Campuses.ID, Campuses.CampusName, Rooms.ID, Rooms.NameNumber, Rooms.Floor
FROM Zones, TecAccessPoints, Buildings, Campuses, Rooms
WHERE Campuses.ID = Buildings.CampusID
AND Buildings.ID = Zones.BuildingID
AND Zones.ID = Rooms.ZoneID
AND Zones.ID = TecAccessPoints.ZoneID
AND TecAccessPoints.MAC = '%@';
Есть ли способ, которым я могу повторить этот запрос, используя NSPredicate (или что-то подобное), или это тот случай, когда мне придется сначала выполнить поиск
TecAccessPoints.MAC == '%@'
Затем выполните другой поиск данных, используя возвращенные данные, например:
Zones.ID == TecAccessPoints.ZoneID
И так до тех пор, пока у меня не будут все мои результаты, которые мне нужны?
Спасибо
Джеймс