sql >> Databáze >  >> RDS >> Mysql

Jak používat cizí klíč při dotazování ze dvou tabulek

Nejsem si jistý, jestli jsi pochopil, k čemu se používají cizí klíče. Cizí klíč v podstatě říká „pro tento záznam musí být záznam v nadřazené tabulce“. Řekl jste, že user_id is foreign key in vehicle table , což mi není jasné.

Předpokládejme tedy, že máte definici tabulky takto:

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

Když chcete do tabulky vložit nového uživatele, user_id musí být existující záznam ve sloupci car_owner v tabulce vozidel.

Cizí klíče slouží k implementaci obchodních pravidel. Musí být každý uživatel nutně majitelem auta? Nebo naopak, musí každé auto někdo vlastnit? Pokud můžete na obě otázky odpovědět ne, pak pro tento případ neimplementujte žádné cizí klíče. Ale udělejte to, pokud můžete odpovědět ano jistě.

Chcete-li získat informace, které hledáte, stačí udělat

SELECT 
* 
FROM 
vehicles 
INNER JOIN users ON vehicles.car_owner = users.user_id


  1. Představujeme novou funkci – Spotlight Cloud Replication

  2. MySQL/PHP – Zlomilo by umístění čísel uvozovkami jakékoli dotazy?

  3. Řaďte ​​podle v rámci skupiny podle v Doktríně 2

  4. Jak mohu získat hodnotu konfigurační proměnné 'ft_min_word_len' MySQL pomocí PHP?