Couple de valeurs sans duplication avec Mysql

Fermé
snoop83 - 4 oct. 2008 à 16:04
 Rollin'babe !! - 5 oct. 2008 à 09:19
Bonjour,
j'aimerai écrire une requête en Mysql (5.0) qui me construit les couples de noms, par exemple de livres, où il n'y aurait pas (book1, book1) et où il n'y aurait que (book1, book2) et pas son inverse (book2, book1)

Merci d'avance
A voir également:

9 réponses

Rollin'babe !!
4 oct. 2008 à 16:09
Bjour,

Il faudrait d'abord examiner la structure de tes tables pour répondre à ta question.

Merci.
0
voilà les tables :

AUTHOR (name,citizenship,byear,bplace)
BOOK (isbn,title,author)
LIBRARY (lname,city)
BINDEX (isbn,subject)
IN_STOCK (isbn,edition,lib_name,quantity)

Et je cherche donc à répondre à la requête suivante :

For all couples of books that have a common subject and both appear in at least
two libraries print their titles. Be sure that no duplicates exist (i.e. <title1, title2>,
<title2, title1>) and that no book appears as a couple with itself.

Merci.
0
Rollin'babe !!
4 oct. 2008 à 16:36
Re,

Peux tu ajouter tes clefs primaires en gras ou en souligné dans tes tables stp pour répondre correctement à ta demande ?.

Merci.
_____________________________________________________________________________
"Ouais mec - après ma mort avant de r'joindre l'Ancien chuis allé faire comme ca
un chtit tour à la "Foire du slip"... une vraie bande de mariolles dis donc
- ca fait pitié - chuis r'monté vite fait ben fait!! (:>" (Jésus Christ).
0
Les clés primaires ne sont pas précisées mais je pense que c'est ca.

AUTHOR (name,citizenship,byear,bplace)
BOOK (isbn,title,author)
LIBRARY (lname,city)
BINDEX (isbn,subject)
IN_STOCK (isbn,edition,lib_name,quantity)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rollin'babe !!
4 oct. 2008 à 16:45
Re,

Peux tu aussi ajouter les Foreign Keys et vers quelles tables elles pointent stp pour répondre correctement à ta demande ?.

Par exemple 'subject' de la table BINDEX - c'est pas bien évident ;>...

Merci.
0
AUTHOR (name,citizenship,byear,bplace)
BOOK (isbn,title,#author)
LIBRARY (lname,city)
BINDEX (#isbn,subject)
IN_STOCK (#isbn,edition,#lib_name,quantity)
0
Rollin'babe !!
4 oct. 2008 à 20:09
Re,

"For all couples of books that have a common subject and both appear in at least
two libraries print their titles. Be sure that no duplicates exist (i.e. <title1, title2>,
<title2, title1>) and that no book appears as a couple with itself."


Je propose déjà ceci :

->

"For all couples of books that have a common subject print their titles. Be sure that no duplicates exist (i.e. <title1, title2>, <title2, title1>) and that no book appears as a couple with itself." </ital>


SELECT A.TITLE, C.TITLE
FROM BOOK A, BINDEX B, BOOK C, BINDEX D
WHERE A.ISBN = B.ISBN
AND C.ISBN = D.ISBN
AND B.SUBJECT = D.SUBJECT
AND A.TITLE < C.TITLE <-- L'astuce pour répondre à ta question initiale

Il me manque l'intégration de cette clause :

".... and both appear in at least two libraries...."

Pis là... je pense à un GROUP BY HAVING sur IN_STOCK mais c'est pas évident pour moi.
J'y travaille.

A+.
0
Rollin'babe !!
4 oct. 2008 à 21:10
Re,

Je propose cette requête à vérifier :

SELECT A.TITLE, C.TITLE
FROM BOOK A, BINDEX B, BOOK C, BINDEX D
WHERE A.ISBN = B.ISBN
AND C.ISBN = D.ISBN
AND B.SUBJECT = D.SUBJECT
AND A.TITLE < C.TITLE
AND A.ISBN IN
(SELECT DISTINCT(ISBN)
FROM IN_STOCK
GROUPE BY (ISBN, EDITION) HAVING COUNT(*) >= 2)
AND C.ISBN IN
(SELECT DISTINCT(ISBN)
FROM IN_STOCK
GROUPE BY (ISBN, EDITION) HAVING COUNT(*) >= 2)

Note :

- Seule contrainte supposée : "".... and both, for the same EDITION, appear in at least two libraries...." .

Merci de m'indiquer si il faut lever cette contrainte supposée : ca risque d'être encore plus chaud !!...

Pour te faire la main sur le même thème : https://cs.nyu.edu/courses/spring00/G22.2433-001/as2.html

Cordialement.
0
Rollin'babe !!
5 oct. 2008 à 09:19
SEVEN UP !!.

Sur le même thème (université de New York - 2000) :

- Questions : https://cs.nyu.edu/courses/spring00/G22.2433-001/assign2.html
- Réponses : https://cs.nyu.edu/courses/spring00/G22.2433-001/as2.html

Les structures de tables différent un peu de ton modèle mais c'est un standard souvent rencontré.

Peux tu tester ma proposition de solution sur ton SGBDR stp car je n'ai rein sous la main pour tester... merci.
0