Non sono sicuro, se hai capito a cosa servono le chiavi esterne. Una chiave esterna fondamentalmente dice "per questa voce deve esserci una voce nella tabella padre". Hai detto che user_id is foreign key in vehicle table
, che non mi è chiaro.
Quindi, supponiamo che tu abbia una definizione di tabella come questa:
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)
);
Quando vuoi inserire un nuovo utente nella tabella, user_id deve essere una voce esistente nella colonna car_owner nella tabella dei veicoli.
Le chiavi esterne sono lì per implementare le regole di business. Ogni utente deve necessariamente essere proprietario di un'auto? O viceversa, ogni macchina deve essere di proprietà di qualcuno? Se puoi rispondere a entrambe le domande con no, non implementare alcuna chiave esterna per questo caso. Ma fallo, se puoi rispondere di sicuro sì.
Per ottenere le informazioni che stai cercando, fai
SELECT
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id