Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвам външен ключ при запитване от две таблици

Не съм сигурен, ако разбрахте за какво се използват външни ключове. Външният ключ по същество казва "за този запис трябва да има запис в родителската таблица". Казахте, че user_id is foreign key in vehicle table , което не ми е ясно.

Така че, нека приемем, че имате дефиниция на таблица като тази:

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)
);

Когато искате да вмъкнете нов потребител в таблицата, user_id трябва да бъде съществуващ запис в колоната car_owner в таблицата с превозни средства.

Външните ключове са там за прилагане на бизнес правила. Всеки потребител ли задължително трябва да е собственик на автомобил? Или обратното, всяка кола трябва да е собственост на някого? Ако можете да отговорите и на двата въпроса с не, тогава не прилагайте никакви външни ключове за този случай. Но направете го, ако можете да отговорите със сигурност.

За да получите информацията, която търсите, просто направете

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. Как да получите всички различни комбинации от 2 колони в MySQL

  2. Как да разбера колко mysql заявки е направил php скрипт?

  3. Извикайте съхранена процедура за всеки ред, върнат от заявка в MySQL

  4. Използвайте обещание за обработка на връщаната стойност на MySQL в node.js

  5. Django:Използване на персонализирани необработени SQL вмъквания с executemany и MySQL