У меня есть база данных с некоторыми таблицами и внешними ключами.
persons
+----------+----------+----------+
|id_person | name | age |
+----------+----------+----------+
| 1 | Smith | 45 |
+----------+----------+----------+
| 2 | Maure | 76 |
+----------+----------+----------+
cars
+----------+----------+----------+
| id_car | color | id_owner*|
+----------+----------+----------+
| 1 | red | 1 |
+----------+----------+----------+
| 2 | gray | 2 |
+----------+----------+----------+
| 3 | white | 2 |
+----------+----------+----------+
*id_owner has a FOREIGN KEY constraint to persons.id_person
Я знаю, как это влияет на INSERT
запросы, ограничивая возможные значения внешнего ключа значениями указанного ключа.
INSERT INTO cars (id_car, color, id_owner) VALUES (NULL, "darkGray", 2) -- will add a car to the cars table.
INSERT INTO cars (id_car, color, id_owner) VALUES (NULL, "rainbow", 3) -- won't work because "3" is not a valid id_person
Но изменит ли это что-либо в запросе select
?
SELECT c.color, p.name
FROM cars c
LEFT JOIN persons p ON p.id_person = c.id_owner -- returns [["red", "Smith"], ["gray", "Maure"], ["white", "Maure"]]