Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać klucza obcego podczas wykonywania zapytań z dwóch tabel

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak najlepiej przechowywać informacje o użytkowniku oraz login i hasło użytkownika?

  2. Wybierz zapytanie mysql między datą?

  3. Mysql - Pomóż mi zmienić to zapytanie, aby uzyskać pożądane wyniki

  4. Mysqli łączy tabele z 2 różnych baz danych

  5. Pobranie podwojenia wartości funkcji tablicowej w każdej pozycji tablicy?