Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách sử dụng khóa ngoại khi truy vấn từ hai bảng

Tôi không chắc, nếu bạn hiểu khóa ngoại được sử dụng để làm gì. Một khóa ngoại về cơ bản cho biết "đối với mục nhập này, phải có mục nhập trong bảng mẹ". Bạn cho biết user_id is foreign key in vehicle table , điều này không rõ ràng đối với tôi.

Vì vậy, giả sử bạn có một định nghĩa bảng như sau:

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

Khi bạn muốn chèn một người dùng mới vào bảng, user_id phải là một mục hiện có trong cột car_owner trong bảng xe.

Các khóa ngoại ở đó để thực hiện các quy tắc kinh doanh. Mọi người dùng có nhất thiết phải là chủ sở hữu ô tô không? Hay ngược lại, mọi chiếc xe đều phải thuộc sở hữu của ai đó? Nếu bạn có thể trả lời cả hai câu hỏi mà không, thì đừng triển khai bất kỳ khóa ngoại nào cho trường hợp này. Nhưng hãy làm như vậy, nếu bạn chắc chắn có thể trả lời là có.

Để có được thông tin bạn đang tìm kiếm, chỉ cần làm

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. Cách tạo chức năng gửi lại liên kết email trong Laravel

  2. làm thế nào để viết truy vấn SQL trong cakephp?

  3. Hình phạt hiệu suất cho các truy vấn mysql lồng nhau

  4. Truy xuất ngày còn thiếu từ cơ sở dữ liệu thông qua MySQL

  5. Hướng dẫn tham gia SQLzoo # 13