Предположим, у нас есть 2 таблицы, a и b:
CREATE TABLE a (id_a INT NOT NULL PRIMARY KEY, id_b INT NOT NULL)
INDEX fk_id_b (id_b ASC),
CONSTRAINT fk_id_b FOREIGN KEY (id_b)
REFERENCES b (id_b);
CREATE TABLE b (id_b INT NOT NULL PRIMARY KEY, b_data INT NOT NULL);
Итак, a имеет следующие столбцы: id_a
и id_b
, где id_b
- внешний ключ для b
sid_b
.Когда я хочу получить связанные b_data от a, я должен сделать соединение:
SELECT id_a, b_data FROM a JOIN b ON a.id_b=b.id_b;
Это работает хорошо, но это долго, я повторяюсь (что я не должен, по словам ребят из ruby)Поэтому я подумал о том, как сделать этот запрос короче, проще для понимания и по-прежнему однозначным:
SELECT id_a, id_b->b_data FROM a;
foreign_key->column
будет вести себя как указатель на структуру, база данных автоматически объединит необходимые таблицы.
Я знаю, что этого не существует, что для того, чтобы сделать его стандартом, вероятно, потребуется так много времени, что я бы не дожил до того, чтобы увидеть его в готовых системах баз данных, и некоторые люди не захотят этого какстранно ", но я бы по крайней мере хотел бы знать, если это было бы возможно, а если нет, то почему.