2016-10-20 9 views
1

MY MySQLのクエリは以下の通りである加入:MySQLのクエリの問題がより左

SELECT 
    `pickupreq`.*, 
    `pinP`.`Pincode` as PinP, 
    `pinD`.`Pincode` as PinD, 
    `tslots`.`StartTime`, 
    `tslots`.`EndTime`, 
    `usr`.`FirstName`, 
    `usr`.`LastName`, 
    `staff`.`FirstName` as sFirstName, 
    `staff`.`LastName` as sLastName, 
    `ord`.`Id` as OrderId, 
    `ord`.`NoOfItems`, 
    `ord`.`NoOfItemsReadyForDelivery`, 
    `ord`.`CurrentStatus`, 
    `ord`.`TotalAmount`, 
    `ord`.`PickupSignature` 
FROM 
    (`PickupRequests` as pickupreq) 
    LEFT JOIN `Users` as usr ON `usr`.`Id` = `pickupreq`.`UserId` 
    LEFT JOIN `Users` as staff ON `staff`.`Id` = `pickupreq`.`AssignedTo` 
    LEFT JOIN `TimeSlot` as tslots ON `tslots`.`Id` = `pickupreq`.`TimeSlotId` 
    LEFT JOIN `Orders` as ord ON `ord`.`PickupRequestsId` = `pickupreq`.`Id` 
    LEFT JOIN `UserAddresses` as addrpick ON `addrpick`.`Id` = `pickupreq`.`PickupAddressId` 
    LEFT JOIN `Country` as countryP ON `countryP`.`Id` = `addrpick`.`CountryId` 
    LEFT JOIN `State` as stP ON `stP`.`Id` = `addrpick`.`StateId` 
    LEFT JOIN `City` as cityP ON `cityP`.`Id` = `addrpick`.`CityId` 
    LEFT JOIN `Pincode` as pinP ON `pinP`.`Id` = `addrpick`.`PincodeId` 
    LEFT JOIN `UserAddresses` as addrdeli ON `addrdeli`.`Id` = `pickupreq`.`DeliveryAddressId` 
    LEFT JOIN `Country` as countryD ON `countryD`.`Id` = `addrdeli`.`CountryId` 
    LEFT JOIN `State` as stD ON `stD`.`Id` = `addrdeli`.`StateId` 
    LEFT JOIN `City` as cityD ON `cityD`.`Id` = `addrdeli`.`CityId` 
    LEFT JOIN `Pincode` as pinD ON `pinD`.`Id` = `addrdeli`.`PincodeId` 
WHERE 
    `pickupreq`.`PickedUpStatus` = 'Yes' 
    AND `pickupreq`.`Status` <> 'CancelRequest' 
    AND `ord`.`CurrentStatus` NOT IN ('Completed', 'Delivered') 

テーブルの上の値玉葉のレコードを取得していないOrdersテーブルのPickupRequestsIdにNULLと0です。 私はまた、 `xは...` INNER JOINを `と同じであるXを... JOINをLEFTことNULLとOrdersテーブルのPickupRequestsId列から値レコード

+0

注意を得るために何をすべきかx ... '。つまり、最後の行をそのテーブルのJOIN句に移動します。 – Strawberry

答えて

1
 LEFT JOIN `Orders` as ord ON `ord`.`PickupRequestsId` = `pickupreq`.`Id` 
+--> 
| LEFT JOIN `UserAddresses` as addrpick ON `addrpick`.`Id` = `pickupreq`.`PickupAddressId` 
| LEFT JOIN `Country` as countryP ON `countryP`.`Id` = `addrpick`.`CountryId` 
| LEFT JOIN `State` as stP ON `stP`.`Id` = `addrpick`.`StateId` 
| LEFT JOIN `City` as cityP ON `cityP`.`Id` = `addrpick`.`CityId` 
| LEFT JOIN `Pincode` as pinP ON `pinP`.`Id` = `addrpick`.`PincodeId` 
| LEFT JOIN `UserAddresses` as addrdeli ON `addrdeli`.`Id` = `pickupreq`.`DeliveryAddressId` 
| LEFT JOIN `Country` as countryD ON `countryD`.`Id` = `addrdeli`.`CountryId` 
| LEFT JOIN `State` as stD ON `stD`.`Id` = `addrdeli`.`StateId` 
| LEFT JOIN `City` as cityD ON `cityD`.`Id` = `addrdeli`.`CityId` 
| LEFT JOIN `Pincode` as pinD ON `pinD`.`Id` = `addrdeli`.`PincodeId` 
| WHERE 
| `pickupreq`.`PickedUpStatus` = 'Yes' 
| AND `pickupreq`.`Status` <> 'CancelRequest' 
+--- AND `ord`.`CurrentStatus` NOT IN ('Completed', 'Delivered')