From bf65c644d8751f3298a5bbdcb671efe90f0318aa Mon Sep 17 00:00:00 2001 From: erichard <elliot.richard@lal.in2p3.fr> Date: Wed, 5 Aug 2020 10:07:16 +0200 Subject: [PATCH] export sql statement into file The two file are a set python variables(key/value). Keys are identical in each file in order to create a kind of interface that can either use variables from one file or the other. values are queries and indexes. queries is a list of two sql statement executed to select tutorials with mandatories and/or forbiden labels. Inside sqlStmtUser.py ELEMENT table is join to User table but not in sqlStmt.py. With sqlStmtUser.py result of select have an extra column : username related to element (e.g. because they are the creator of this element). --- labelstower/sqlStmt.py | 48 +++++++++++++++++++++++++++++++ labelstower/sqlStmtOptUser.py | 54 +++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 labelstower/sqlStmt.py create mode 100644 labelstower/sqlStmtOptUser.py diff --git a/labelstower/sqlStmt.py b/labelstower/sqlStmt.py new file mode 100644 index 0000000..ddf23f5 --- /dev/null +++ b/labelstower/sqlStmt.py @@ -0,0 +1,48 @@ +queries =[ + '''SELECT + ELEMENT.* + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id=ELEMENT_LABEL.id_element + WHERE + id_label IN ({}) + AND + id_element NOT IN ( + SELECT + id_element + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id=ELEMENT_LABEL.id_element + WHERE + id_label IN ({})) + GROUP BY id_element + HAVING COUNT(*) = {} + Order BY element_name''', +''' + SELECT + ELEMENT.* + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id = ELEMENT_LABEL.id_element + WHERE + id_element NOT IN ( + SELECT + id_element + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id = ELEMENT_LABEL.id_element + WHERE id_label IN ({}) ) + GROUP BY ELEMENT.id + ORDER BY element_name ASC +''' +] +ALL_LABEL_TYPE=0 +FORBIDEN_LABEL_ONLY=1 \ No newline at end of file diff --git a/labelstower/sqlStmtOptUser.py b/labelstower/sqlStmtOptUser.py new file mode 100644 index 0000000..a80b90f --- /dev/null +++ b/labelstower/sqlStmtOptUser.py @@ -0,0 +1,54 @@ +queries =[ + '''SELECT + ELEMENT.*, USER.username + FROM + USER + INNER JOIN + ELEMENT + ON USER.id=ELEMENT.user_id + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id=ELEMENT_LABEL.id_element + WHERE + id_label IN ({}) + AND + id_element NOT IN ( + SELECT + id_element + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id=ELEMENT_LABEL.id_element + WHERE + id_label IN ({})) + GROUP BY id_element + HAVING COUNT(*) = {} + Order BY element_name''', +''' + SELECT + ELEMENT.*, USER.username + FROM + USER + INNER JOIN + ELEMENT + ON USER.id=ELEMENT.user_id + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id=ELEMENT_LABEL.id_element + WHERE + id_element NOT IN ( + SELECT + id_element + FROM + ELEMENT + INNER JOIN + ELEMENT_LABEL + ON ELEMENT.id = ELEMENT_LABEL.id_element + WHERE id_label IN ({}) ) + GROUP BY ELEMENT.id + ORDER BY element_name ASC +''' +] +ALL_LABEL_TYPE=0 +FORBIDEN_LABEL_ONLY=1 \ No newline at end of file -- GitLab