kevinrae / mosskey

Multiple entry key for North American Mosses
0 stars 0 forks source link

Show # of taxa matches for each keycharacter in dropdown menu #16

Closed kevinrae closed 6 years ago

kevinrae commented 6 years ago

Use this sql:

select keycharacter.name, count(map.TaxaId) AS NumOfMatchingTaxa
FROM map, keycharacter WHERE map.keycharacterID=keycharacter.id
GROUP BY keycharacter.name;

Display value in parentheses or brackets.

kevinrae commented 6 years ago

Updated sql...

select a.name, lft, rht, id, depth, IFNULL(matches,0) AS matches FROM

(SELECT node.name, node.lft, node.rht, node.id, (COUNT(parent.name) - 1) AS depth
FROM KeyCharacter AS node,
     KeyCharacter AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rht
GROUP BY node.name
HAVING depth >= 1
ORDER BY node.lft) a

LEFT JOIN
(select keycharacter.name, count(map.TaxaId) AS matches
FROM map, keycharacter WHERE map.keycharacterID=keycharacter.id
GROUP BY keycharacter.name) b

ON a.name = b.name;
kevinrae commented 6 years ago

Matches are displayed in dropdown... and then copied to 'character selected' panel. Image below shows 'character selected' panel after (2) characters have been selected. # of matches are shown in parentheses.

num_of_taxa_matches