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

Jak przechowywać tablice w MySQL?

Właściwym sposobem na to jest użycie wielu tabel i JOIN je w swoich zapytaniach.

Na przykład:

CREATE TABLE person (
`id` INT NOT NULL PRIMARY KEY,
`name` VARCHAR(50)
);

CREATE TABLE fruits (
`fruit_name` VARCHAR(20) NOT NULL PRIMARY KEY,
`color` VARCHAR(20),
`price` INT
);

CREATE TABLE person_fruit (
`person_id` INT NOT NULL,
`fruit_name` VARCHAR(20) NOT NULL,
PRIMARY KEY(`person_id`, `fruit_name`)
);

person_fruit tabela zawiera jeden wiersz dla każdego owocu, z którym dana osoba jest powiązana i skutecznie łączy person i fruits stoły razem, tj.

1 | "banana"
1 | "apple"
1 | "orange"
2 | "straberry"
2 | "banana"
2 | "apple"

Jeśli chcesz odzyskać osobę i wszystkie jej owoce, możesz zrobić coś takiego:

SELECT p.*, f.*
FROM person p
INNER JOIN person_fruit pf
ON pf.person_id = p.id
INNER JOIN fruits f
ON f.fruit_name = pf.fruit_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie mysql concat() w klauzuli WHERE?

  2. Jak uzyskać pierwszy rekord w każdej grupie w MySQL?

  3. Ostrzeżenie:mysql_query():3 nie jest prawidłowym zasobem MySQL-Link

  4. Jak uciec % z zapytania mysql w Pythonie?

  5. Czy połączenia SQL otwierane za pomocą PDO w PHP muszą być zamknięte?