Jeg er ikke sikker på, om du forstod, hvad fremmednøgler bruges til. En fremmednøgle siger grundlæggende "for denne post skal der være en post i den overordnede tabel". Du sagde, at user_id is foreign key in vehicle table
, hvilket ikke er klart for mig.
Så lad os antage, at du har en tabeldefinition som denne:
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)
);
Når du vil indsætte en ny bruger i tabellen, skal user_id være en eksisterende post i car_owner-kolonnen i køretøjstabellen.
Fremmednøgler er der for at implementere forretningsregler. Skal enhver bruger nødvendigvis være bilejer? Eller omvendt, skal enhver bil være ejet af nogen? Hvis du kan besvare begge spørgsmål med nej, så skal du ikke implementere nogen fremmednøgler i denne sag. Men gør det, hvis du med sikkerhed kan svare ja.
For at få de oplysninger, du leder efter, skal du bare gøre
SELECT
*
FROM
vehicles
INNER JOIN users ON vehicles.car_owner = users.user_id