Boucle et résultats comparés de 2 tables
Résolu/Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
Modifié le 23 sept. 2018 à 00:43
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 23 sept. 2018 à 17:33
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 23 sept. 2018 à 17:33
A voir également:
- Boucle et résultats comparés de 2 tables
- Word numéro de page 1/2 - Guide
- Tables des matières word - Guide
- 2 ecran pc - Guide
- Resultats foot - Télécharger - Vie quotidienne
3 réponses
DelNC
Messages postés
2234
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
22 février 2020
2 002
23 sept. 2018 à 02:39
23 sept. 2018 à 02:39
Bonjour
Essaye de faire une requête avec Distinct
Voilà des exemple sur ce lien
https://www.w3schools.com/sql/sql_distinct.asp
Essaye de faire une requête avec Distinct
Voilà des exemple sur ce lien
https://www.w3schools.com/sql/sql_distinct.asp
jordane45
Messages postés
38384
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
23 sept. 2018 à 07:38
23 sept. 2018 à 07:38
Bonjour
Utilises donc un
LEFT JOIN
Utilises donc un
LEFT JOIN
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 sept. 2018 à 15:11
23 sept. 2018 à 15:11
Bonjour,
Avec JOINT LEFT j'ai toujours :
au lieu d'avoir :
SELECT *
FROM tb_user_notifications
LEFT JOIN tb_user_notifications_recap ON
tb_user_notifications.NumId = tb_user_notifications_recap.Notification
WHERE tb_user_notifications_recap.NIC_Handle='".$_SESSION_NICHANDLE."'
Avec JOINT LEFT j'ai toujours :
15-03-2018 - Sujet 2 - Lu
08-03-2017 - Sujet 1 - Lu
au lieu d'avoir :
22-09-2018 - Sujet 6 - Non lu
22-09-2018 - sujet 5 - Non lu
22-09-2018 - Sujet 4 - Non lu
17-03-2018 - Sujet 3 - Non lu
15-03-2018 - Sujet 2 - Lu
08-03-2017 - Sujet 1 - Lu
jordane45
Messages postés
38384
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
23 sept. 2018 à 16:33
23 sept. 2018 à 16:33
SELECT * FROM tb_user_notifications U LEFT JOIN tb_user_notifications_recap R ON U.id = R.notification WHERE R.user = 'JA90717' OR R.user IS NULL
jordane45
Messages postés
38384
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
23 sept. 2018 à 16:34
23 sept. 2018 à 16:34
Ou encore
SELECT * FROM tb_user_notifications U LEFT JOIN tb_user_notifications_recap R ON U.id = R.notification AND R.user = 'JA90717'
jordane45
Messages postés
38384
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
23 sept. 2018 à 16:37
23 sept. 2018 à 16:37
Sachant que j'ai utillisé la structure de bdd suivante
NB: Lorsque tu nommes tes tables ou les champs qui s'y trouvent.. je te conseille de n'utiliser que des minuscules....
Et pour les champs "id" ..'id' suffit... pas besoin de complexifier en mettant des trucs du genre NumId
-- Export de la structure de table test3. tb_user_notifications CREATE TABLE IF NOT EXISTS `tb_user_notifications` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `sujet` varchar(50) DEFAULT NULL, `message` text, PRIMARY KEY (`id`), KEY `date` (`date`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; -- Export de données de la table test3.tb_user_notifications: ~0 rows (environ) DELETE FROM `tb_user_notifications`; INSERT INTO `tb_user_notifications` (`id`, `date`, `sujet`, `message`) VALUES (1, '2018-03-08 19:07:00', 'test1', 'dsfsdf'), (2, '2018-03-15 19:07:00', 'test2', 'dsfsdf'), (3, '2018-03-17 16:59:00', 'test3', 'dsfsdf'), (4, '2018-09-23 13:00:20', 'test4', 'dsfsdf'), (5, '2018-09-23 14:27:20', 'test5', 'dsfsdf'), (6, '2018-09-23 15:27:20', 'test6', 'dsfsdf'); -- Export de la structure de table test3. tb_user_notifications_recap CREATE TABLE IF NOT EXISTS `tb_user_notifications_recap` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user` varchar(50) DEFAULT NULL, `notification` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `user` (`user`), KEY `notification` (`notification`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; -- Export de données de la table test3.tb_user_notifications_recap: ~0 rows (environ) DELETE FROM `tb_user_notifications_recap`; INSERT INTO `tb_user_notifications_recap` (`id`, `user`, `notification`) VALUES (1, 'JA90717', 1), (2, 'JA90717', 2), (3, 'JS38579', 1);
NB: Lorsque tu nommes tes tables ou les champs qui s'y trouvent.. je te conseille de n'utiliser que des minuscules....
Et pour les champs "id" ..'id' suffit... pas besoin de complexifier en mettant des trucs du genre NumId
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
23 sept. 2018 à 17:33
23 sept. 2018 à 17:33
C'est lui qui me manquais
Merci pour cette nette clarification Jordan !
Je vais faire quelques tests en interne pour mieux comprendre les jointures.
Encore merci !
OR R.user IS NULL:'(
Merci pour cette nette clarification Jordan !
Je vais faire quelques tests en interne pour mieux comprendre les jointures.
Encore merci !