У меня в моей базе данных есть «пользователи», к сожалению, в ней много беспорядков, и я пытаюсь переместить ее на новую. Но просто точные вещи, которые не копируются/не вставляются целиком.MySQL SELECT query WHERE «something is TRUE»
Вот пример того, как дб выглядит следующим образом:
-------*/*------------*/*------------*/*------------*/*------------*/*------------
id level name kind status parentId
-------*/*------------*/*------------*/*------------*/*----------*/*------------
EMD123F | 2 | OrgName1 | Org | | rootID
---------------------------------------------------------------------------------
DHAD781 | 3 | UserName1 | Person | active | EMD123F
---------------------------------------------------------------------------------
7AJIZU7 | 3 | UserName2 | Person | active | EMD123F
---------------------------------------------------------------------------------
DME123F | 2 | OrgName2 | Org | | rootID
---------------------------------------------------------------------------------
TT5451AL| 3 | UserName3 | Person | active | DME123F
---------------------------------------------------------------------------------
RRMI7481| 2 | OrgName3 | Org | | rootID
---------------------------------------------------------------------------------
PPUNSAD9| 2 | OrgName4 | Org | | rootID
---------------------------------------------------------------------------------
GJASDNZB| 3 | UserName4 | Person | inactive | PPUNSAD9
---------------------------------------------------------------------------------
KJNSCZM7| 2 | OrgName5 | Org | | rootID
---------------------------------------------------------------------------------
1UZGOPAS| 3 | UserName5 | Person | deleted | KJNSCZM7
---------------------------------------------------------------------------------
То, что вы здесь видите, что некоторые «организация», которые имеют 0 пользователей, так это Absolutley бесполезно, есть некоторые организации, которые имеют пользователь, но они не являются активный (неактивный, удаленный ...).
Мой вопрос заключается в том, как написать инструкцию select, чтобы получить ВСЕ ОРГАНИЗАЦИЮ, где внутри есть 1 активный человек.
RealData является немного более сложным, но я пытаюсь что-то вроде этого:
UPDATE users set org_status=1 WHERE (select count(STATUS) FROM users WHERE users.MEMBERKIND="Person" AND users.STATUS="Active" AND users.ROOTORGANIZATIONUSERID= users.ROOTORGANIZATIONIDCORRECTED)>0 AND MEMBERKIND = "Organization" AND LEVEL=2
я создаю новую строку «org_status» и установите его в NULL, и после этого я пытаюсь обновить его
Просьба предоставить запрос/запросы, которые вы пробовали до сих пор. Но subselect должен работать, я думаю (untested): 'SELECT * FROM orgaTable WHERE (выберите count (*) от пользователей orgaTable AS WHERE users.parentId = orgaTable.id)> 0;' –
Возможный дубликат [Как создать MySQL иерархический рекурсивный запрос] (http://stackoverflow.com/questions/20215744/how-to-create-a-mysql-hierarchical-recursive-query) – vhu