Je ne sais pas si vous avez compris à quoi servent les clés étrangères. Une clé étrangère dit essentiellement "pour cette entrée, il doit y avoir une entrée dans la table parent". Vous avez dit user_id is foreign key in vehicle table
, ce qui n'est pas clair pour moi.
Supposons donc que vous ayez une définition de table comme celle-ci :
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)
);
Lorsque vous souhaitez insérer un nouvel utilisateur dans la table, l'user_id doit être une entrée existante dans la colonne car_owner de la table des véhicules.
Les clés étrangères sont là pour implémenter des règles métier. Chaque utilisateur doit-il nécessairement être propriétaire d'une voiture ? Ou à l'inverse, chaque voiture doit-elle appartenir à quelqu'un ? Si vous pouvez répondre non aux deux questions, n'implémentez aucune clé étrangère dans ce cas. Mais faites-le, si vous pouvez répondre oui à coup sûr.
Pour obtenir les informations que vous recherchez, faites simplement
SELECT
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id