sql >> Database teknologi >  >> RDS >> Mysql

Sådan bruger du en fremmednøgle, når du forespørger fra to tabeller

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


  1. MySqlException på ExecuteReader ved at vælge UserID(PK)

  2. Få den nærmeste dato fra MySQL-tabellen

  3. Løkke resultater baseret på kategori, men vis kun kategori én gang

  4. Søg efter rækkevidde Latitude/Længdegrad koordinater