查询在invstorelocation
时返回完美结果。Description
AS位置,与连接一起不包含在查询中
INNER JOIN
`invstorelocation`
ON (`invlabtes`.`StockLocCode` = `invstorelocation`.`Code`)
但是当我在查询中包含此连接时,即使完全满足所有条件,表也会返回空。 Plz提到了获取位置记录以及其他记录的替代方法。
SELECT
`invlabtes`.`CommAppCode` ,
`invlabtes`.`Code` ,
`invlabtes`.`GatePassNO` ,
`invlabtes`.`VehicleNo` ,
`invlabtes`.`SupplierCode` ,
`invstorelocation`.`Description` AS Location ,
`invstore`.`Description` AS MaterialName
FROM
`invlabtes`
INNER JOIN
`invstorelocation`
ON (`invlabtes`.`StockLocCode` = `invstorelocation`.`Code`)
INNER JOIN
`invgatepass`
ON (`invlabtes`.`GatePassNO` = `invgatepass`.`InwardNo`) AND (`invlabtes`.`GatePassDate` = `invgatepass`.`EntryDate`) AND (`invlabtes`.`VehicleNo` = `invgatepass`.`VehicleNo`)
INNER JOIN
`invgatepasssubtable`
ON (`invlabtes`.`GatePassNO` = `invgatepasssubtable`.`InwardNo`) AND (`invlabtes`.`ItemCode` = `invgatepasssubtable`.`ItemCode`)
INNER JOIN
`invstore`
ON (`invgatepass`.`StoreCode` = `invstore`.`Code`)
WHERE (`invlabtes`.`Code` LIKE '%%' OR `invlabtes`.`CommAppCode` LIKE '%%' OR `invlabtes`.`GatePassNO` LIKE '%%' OR `invlabtes`.`VehicleNo` LIKE '%%' OR `invlabtes`.`SupplierCode` LIKE '%%') AND `invlabtes`.`CommAppCode`<>'' AND `invlabtes`.`Unit_Code`='1' LIMIT 100;
此查询成功返回数据。以上查询有问题。
SELECT
`invlabtes`.`CommAppCode` ,
`invlabtes`.`Code` ,
`invlabtes`.`GatePassNO` ,
`invlabtes`.`VehicleNo` ,
`invlabtes`.`SupplierCode` ,
`invstore`.`Description` AS MaterialName
FROM
`invlabtes`
INNER JOIN
`invgatepass`
ON (`invlabtes`.`GatePassNO` = `invgatepass`.`InwardNo`) AND (`invlabtes`.`GatePassDate` = `invgatepass`.`EntryDate`) AND (`invlabtes`.`VehicleNo` = `invgatepass`.`VehicleNo`)
INNER JOIN
`invgatepasssubtable`
ON (`invlabtes`.`GatePassNO` = `invgatepasssubtable`.`InwardNo`) AND (`invlabtes`.`ItemCode` = `invgatepasssubtable`.`ItemCode`)
INNER JOIN
`invstore`
ON (`invgatepass`.`StoreCode` = `invstore`.`Code`)
WHERE (`invlabtes`.`Code` LIKE '%%' OR `invlabtes`.`CommAppCode` LIKE '%%' OR `invlabtes`.`GatePassNO` LIKE '%%' OR `invlabtes`.`VehicleNo` LIKE '%%' OR `invlabtes`.`SupplierCode` LIKE '%%') AND `invlabtes`.`CommAppCode`<>'' AND `invlabtes`.`Unit_Code`='1' LIMIT 100;
答案 0 :(得分:0)
根据您所说的面值,似乎没有invstorelocation
行,invstorelocation.Code
匹配您指定的限制的invlabtes.StockLocCode
值。
尝试只选择invlabtes.StockLocCode
即SELECT invlabtesFROM StockLocCode
然后尝试从Code
中选择invstorelocation
即SELECt Code FROM invstorelocation
检查是否有任何值对应,如果它们已经被WHERE子句过滤掉了,那么chekc是什么?
不幸的是,如果没有数据,这将难以诊断。
答案 1 :(得分:0)
尝试
LEFT OUTER JOIN
`invstorelocation`
ON (`invlabtes`.`StockLocCode` = `invstorelocation`.`Code`)
如果使用INNER JOIN并且表为空,则不会返回结果