Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| info:mysql:mysql_join_left [2023/03/20 14:35] – supprimée - modification externe (Unknown date) 127.0.0.1 | info:mysql:mysql_join_left [2023/03/20 14:37] (Version actuelle) – radeff | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== MySQL SELECT LEFT JOIN etc. ====== | ||
| + | ===== Doc ===== | ||
| + | * http:// | ||
| + | * http:// | ||
| + | ===== Exemple ===== | ||
| + | Créer deux tables: | ||
| + | <code mysql> | ||
| + | CREATE TABLE IF NOT EXISTS `a` ( | ||
| + | `id` varchar(3) NOT NULL, | ||
| + | PRIMARY KEY (`id`) | ||
| + | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | ||
| + | |||
| + | -- | ||
| + | -- Contenu de la table `a` | ||
| + | -- | ||
| + | |||
| + | INSERT INTO `a` (`id`) VALUES | ||
| + | (' | ||
| + | (' | ||
| + | (' | ||
| + | (' | ||
| + | |||
| + | |||
| + | CREATE TABLE IF NOT EXISTS `b` ( | ||
| + | `a_id` varchar(3) NOT NULL, | ||
| + | `b` tinyint(4) NOT NULL | ||
| + | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | ||
| + | |||
| + | -- | ||
| + | -- Contenu de la table `b` | ||
| + | -- | ||
| + | |||
| + | INSERT INTO `b` (`a_id`, `b`) VALUES | ||
| + | (' | ||
| + | (' | ||
| + | (' | ||
| + | (' | ||
| + | </ | ||
| + | |||
| + | Si on fait: | ||
| + | <code mysql> | ||
| + | SELECT * | ||
| + | FROM `a` , `b` | ||
| + | WHERE a.id = b.a_id | ||
| + | LIMIT 0 , 30 | ||
| + | </ | ||
| + | |||
| + | mysql retourne | ||
| + | |||
| + | < | ||
| + | a a 1 | ||
| + | a a 2 | ||
| + | b b 1 | ||
| + | b b 3 | ||
| + | </ | ||
| + | |||
| + | on n'a donc pas les enregistrements c | ||
| + | |||
| + | pour les avoir: | ||
| + | |||
| + | <code mysql> | ||
| + | SELECT * | ||
| + | FROM a | ||
| + | LEFT JOIN b ON a.id = b.a_id | ||
| + | </ | ||
| + | |||
| + | renvoie | ||
| + | |||
| + | < | ||
| + | a a 1 | ||
| + | a a 2 | ||
| + | b b 1 | ||
| + | b b 3 | ||
| + | c NULL NULL | ||
| + | d NULL NULL | ||
| + | </ | ||
| + | |||
| + | Pour nettoyer | ||
| + | |||
| + | <code mysql> | ||
| + | | ||
| + | FROM a | ||
| + | LEFT JOIN b ON a.id = b.a_id | ||
| + | LIMIT 0 , 30 | ||
| + | </ | ||
| + | |||
| + | renvoie | ||
| + | |||
| + | < | ||
| + | a 1 | ||
| + | a 2 | ||
| + | b 1 | ||
| + | b 3 | ||
| + | NULL NULL | ||
| + | NULL NULL | ||
| + | </ | ||
| + | |||
| + | ===== attention à l' | ||
| + | <code mysql> | ||
| + | SELECT * | ||
| + | FROM b | ||
| + | LEFT JOIN a ON a.id = b.a_id | ||
| + | </ | ||
| + | ne retourne que | ||
| + | < | ||
| + | a a 1 | ||
| + | a a 2 | ||
| + | b b 1 | ||
| + | b b 3 | ||
| + | </ | ||
| + | |||
| + | {{tag> | ||