Skip to content
Snippets Groups Projects
Commit 73385a8c authored by erichard's avatar erichard
Browse files

Modification de la requête sql de sélection des éléments !

Pour obtenir des nom d'attribut identique pour les identifiants
entre les json des elements et labels j'ai modifier le nom des attributs
de la requête (id_element -> id).
Ainsi
{id: , element_name: } et {id: , label_name: } peuvent utiliser la fonction
get_ids(object) qui retourne une chaîne d'id séparer par des virgule
(étape préparatoire des requêtes sql).
parent 6e4af40a
No related branches found
No related tags found
2 merge requests!61Packager labelstower,!60WIP: Implement sqlalchemy
......@@ -10,9 +10,9 @@ def get_elements(id_mandatory_labels, id_forbiden_labels, number_of_mandatory_la
:return: list
"""
if(id_mandatory_labels):
elements = send_sql('SELECT id_element, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (' + id_mandatory_labels + ") AND id_element NOT IN (SELECT id_element FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (" + id_forbiden_labels + ")) GROUP BY id_element HAVING COUNT(*) = " + number_of_mandatory_labels + " Order BY element_name")
elements = send_sql('SELECT ELEMENT.id, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (' + id_mandatory_labels + ") AND id_element NOT IN (SELECT id_element FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id=ELEMENT_LABEL.id_element INNER JOIN LABEL ON ELEMENT_LABEL.id_label=LABEL.id WHERE id_label IN (" + id_forbiden_labels + ")) GROUP BY id_element HAVING COUNT(*) = " + number_of_mandatory_labels + " Order BY element_name")
else:
elements = send_sql('SELECT DISTINCT id_element, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label=label.id WHERE element_name NOT IN ( SELECT element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label = label.id WHERE id_label IN (' + id_forbiden_labels + ') ) ORDER BY element_name ASC')
elements = send_sql('SELECT DISTINCT ELEMENT.id, element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label=label.id WHERE element_name NOT IN ( SELECT element_name FROM ELEMENT INNER JOIN ELEMENT_LABEL ON ELEMENT.id = ELEMENT_LABEL.id_element INNER JOIN label ON ELEMENT_LABEL.id_label = label.id WHERE id_label IN (' + id_forbiden_labels + ') ) ORDER BY element_name ASC')
return elements
#get_labels(json.loads(get_elements(id_mandatory_labels, id_forbiden_labels, number_of_mandatory_labels)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment