Jointure même si ya pas

Résolu/Fermé
moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024 - 17 avril 2020 à 11:31
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 17 avril 2020 à 21:37
bonjour
je vous explique mon probleme
j'ai 2 table
MANGA (idm,nm) et
nomalter(idm,nom)
un manga peut avoir 0,1 ou plusieur nom alternatif
est se que j'aimerais faire c'est chercher un manga et en même temps voir c'est nom alternatif même si il y'en a pas

j'ai essayer sa

SELECT * FROM manga m, nomalter na WHERE nm like "%one p%" and na.idm = manga.idm;

mais si je fait sa les manga qui n'on pas de nom alternatif n'apparaisse pas
alors que moi j'aimerais quand même les voir et savoir qu'il n'on pas de nom alternative
j'ai aussi penser a completer la table nomalter en remplisser tout les id restant et en laissant le nom vide mais j'aimerais pas en arriver la

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
17 avril 2020 à 11:46
Bonjour,


est se que j'aimerais faire c'est chercher un manga et en même temps voir c'est nom alternatif même si il y'en a pas


Et ce que j'aimerai faire, c'est de pouvoir chercher un manga et en même temps voir son nom alternatif, même si il n'en a pas.


Pour cela tu peux utiliser un LEFT JOIN
SELECT * 
FROM manga m
LEFT JOIN  nomalter na ON na.idm = m.idm
WHERE m.nm LIKE "%one p%"  
 OR na.nom  LIKE "%one p%"  



1
moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024
17 avril 2020 à 12:02
ouai merci c'est exactement ce que je voulais faire mais en terme de performance c'est pas ouf
je veut dire il me prend 26 seconde pour me faire la requete
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
17 avril 2020 à 12:03
C'est que tu n'as pas défini d'index sur tes tables ni de clé primaire je suppose ...
0
moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
17 avril 2020 à 14:19
je sais pas j'ai créer mes table de la maniére suivante

CREATE TABLE MANGA (
`idm` INT PRIMARY KEY,
`nm` varchar(200) NOT NULL,
`statut` varchar(15),
`vovf` int,
`vovo` int,
`auteur` varchar(200),
`artiste` varchar(200),
`lien` varchar(300));

CREATE TABLE TYPE (
`idm` INT,
`type` varchar(20));

CREATE TABLE GENRE (
`idm` INT,
`type` varchar(50));

CREATE TABLE NA (
`idm` INT ,
`type` varchar(200));
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024
17 avril 2020 à 14:36
Déjà, ton "modèle" de base n'est pas terrible.
Inspire toi de ça :


Et ensuite, cherche sur le net comment mettre des INDEX sur les tables. Les tutos à ce sujet foisonnent ...
0
moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024 > jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024
17 avril 2020 à 19:14
ok je vois en gros

juste 2 question dans type et dans genre c'est bien le même id que manga
et pour nom alternatif il me faut un id + l'id qui est égale a l'id de manga + index (sa fait pas un peut bcp)

sinon pour auteur et artiste j'y ais penser mais trops tard faudrait que je regéner mes kasi 4000 manga
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > moutonsti Messages postés 18 Date d'inscription mardi 5 février 2019 Statut Membre Dernière intervention 7 avril 2024
17 avril 2020 à 19:59
Il est recommandé, pour chaque table, d'avoir un ID (souvent auto-incrémenté) en clé PRIMAIRE afin de pouvoir facilement éditer/supprimé un élément de la dite table.
et non, ces champs "id" sont propres à chaque table. suit les "traits" pour voir sur quels champs se font les liaisons....
0