Не съм сигурен, ако разбрахте за какво се използват външни ключове. Външният ключ по същество казва "за този запис трябва да има запис в родителската таблица". Казахте, че user_id is foreign key in vehicle table
, което не ми е ясно.
Така че, нека приемем, че имате дефиниция на таблица като тази:
CREATE TABLE vehicles
(`id_car` int, `car_model` varchar(2), `car_owner` int);
CREATE TABLE users
(`user_id` int, `user_name` varchar(5), `user_phone` varchar(7)
, CONSTRAINT `fk_your_foreign_key` FOREIGN KEY (user_id) REFERENCES vehicles(car_owner)
);
Когато искате да вмъкнете нов потребител в таблицата, user_id трябва да бъде съществуващ запис в колоната car_owner в таблицата с превозни средства.
Външните ключове са там за прилагане на бизнес правила. Всеки потребител ли задължително трябва да е собственик на автомобил? Или обратното, всяка кола трябва да е собственост на някого? Ако можете да отговорите и на двата въпроса с не, тогава не прилагайте никакви външни ключове за този случай. Но направете го, ако можете да отговорите със сигурност.
За да получите информацията, която търсите, просто направете
SELECT
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id