Nie jestem pewien, czy rozumiesz, do czego służą klucze obce. Klucz obcy w zasadzie mówi „dla tego wpisu musi istnieć wpis w tabeli nadrzędnej”. Powiedziałeś, że user_id is foreign key in vehicle table
, co nie jest dla mnie jasne.
Załóżmy więc, że masz taką definicję tabeli:
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)
);
Jeśli chcesz wstawić nowego użytkownika do tabeli, user_id musi być istniejącym wpisem w kolumnie car_owner w tabeli pojazdów.
Klucze obce służą do implementacji reguł biznesowych. Czy każdy użytkownik koniecznie musi być właścicielem samochodu? A może na odwrót, czy każdy samochód musi należeć do kogoś? Jeśli możesz odpowiedzieć na oba pytania bez, nie implementuj żadnych kluczy obcych w tym przypadku. Ale zrób to, jeśli na pewno możesz odpowiedzieć tak.
Aby uzyskać informacje, których szukasz, po prostu wykonaj
SELECT
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id