MySQL ограничение не работает несколько записей против 1 ID - PullRequest
0 голосов
/ 03 сентября 2018

Mysql процедура дает три записи против 1 id. Я пытаюсь получить только 1 запись против 1 идентификатора. где поставить ограничение на доступ только к 1 записи против 1 id

Создать DEFINER = xxxx @ xxxx.% ПРОЦЕДУРА xxxx (

    IN pCompanyId BIGINT(20)
        )
    BEGIN
        SELECT 
         `zp`.`PlaceId`,
         `zp`.`PlaceName`,
         `zp`.`PlaceCategoryCode`,
         `zp`.`Description`,
         `zp`.`CompanyId_FK`,
         `zp`.`OwnerCompanyId_FK`,
         `zp`.`IsDeleted`,
         `zp`.`IsArchived`,
         `zp`.`CreatedDate`,
         `zp`.`ModifiedDate`,
         `zp`.`CreatedBy_FK`,
         `zp`.`ModifiedBy_FK`,
         (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` WHERE `ApplianceActionCode` = 1 AND `PlaceId_FK` = `PlaceId`)  AS activeDevices ,
         (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` where  `PlaceId_FK` = `PlaceId` ) AS totalDevices

        FROM `ZThinQ_Place` AS `zp` 
        JOIN `ZThinQ_Appliance` as `za`

        #ON `ZThinQ_Appliance`
        #ON `PlaceId` = `PlaceId_FK` 

        Where `zp`.`CompanyId_FK`=pCompanyId;


    END

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

У меня есть несколько записей против 1 id. Поэтому в моей процедуре я использую select Different. Вот и все

SELECT distinct
 `zp`.`PlaceId`,
 `zp`.`PlaceName`,
 `zp`.`PlaceCategoryCode`,
 `zp`.`Description`,
 `zp`.`CompanyId_FK`,
 `zp`.`OwnerCompanyId_FK`,
 `zp`.`IsDeleted`,
 `zp`.`IsArchived`,
 `zp`.`CreatedDate`,
 `zp`.`ModifiedDate`,
 `zp`.`CreatedBy_FK`,
 `zp`.`ModifiedBy_FK`,
 (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` WHERE `ApplianceActionCode` = 1 AND `PlaceId_FK` = `PlaceId`)  AS activeDevices ,
 (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` where  `PlaceId_FK` = `PlaceId` ) AS totalDevices

FROM `ZThinQ_Place` AS `zp` 
JOIN `ZThinQ_Appliance` as `za`

#ON `ZThinQ_Appliance`
#ON `PlaceId` = `PlaceId_FK` 

Where `zp`.`CompanyId_FK`=pCompanyId
LIMIT 1 
0 голосов
/ 03 сентября 2018

если вы хотите строки, вы можете добавить ограничение 1 к вашему запросу

 SELECT 
     `zp`.`PlaceId`,
     `zp`.`PlaceName`,
     `zp`.`PlaceCategoryCode`,
     `zp`.`Description`,
     `zp`.`CompanyId_FK`,
     `zp`.`OwnerCompanyId_FK`,
     `zp`.`IsDeleted`,
     `zp`.`IsArchived`,
     `zp`.`CreatedDate`,
     `zp`.`ModifiedDate`,
     `zp`.`CreatedBy_FK`,
     `zp`.`ModifiedBy_FK`,
     (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` WHERE `ApplianceActionCode` = 1 AND `PlaceId_FK` = `PlaceId`)  AS activeDevices ,
     (SELECT COUNT(`ApplianceId`) FROM `ZThinQ_Appliance` where  `PlaceId_FK` = `PlaceId` ) AS totalDevices

    FROM `ZThinQ_Place` AS `zp` 
    JOIN `ZThinQ_Appliance` as `za`

    #ON `ZThinQ_Appliance`
    #ON `PlaceId` = `PlaceId_FK` 

    Where `zp`.`CompanyId_FK`=pCompanyId
    LIMIT 1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...