SELECT `a`.`MaterialNum`,`a`.`PicName`,`a`.`PartName`,`a`.`StepID`,`b`.`StepName`,`b`.`StepTime`,`b`.`UnitPrice`,`b`.`Quota` from ty_process as `a`,ty_partstep as `b`WHERE `a`.`PicName`=`b`.`PicName` and `a`.`PicName` like 'FDH-2101%' and `b`.`StepID` like concat(`a`.`StepID`,'%')
这个sql中`b`.`StepID` like concat(`a`.`StepID`,'%') 有问题,`a`.`StepID`取不到值,应该是符号的问题,试了半天都不行,引号,双引号都试过了
这个sql中`b`.`StepID` like concat(`a`.`StepID`,'%') 有问题,`a`.`StepID`取不到值,应该是符号的问题,试了半天都不行,引号,双引号都试过了
SELECT a.MaterialNum,a.PicName,a.PartName,a.StepID,b.StepName,b.StepTime,b.UnitPrice,b.Quota from ty_process as a,ty_partstep as bWHERE a.PicName=b.PicName and a.PicName like 'FDH-2101%' and b.StepID like concat(a.StepID,'%')
LIMIT 0, 30' at line 1
但你确定在A表了里`a`.`PicName` like 'FDH-2101%'条件的结果数据中与关联的B表里a.PicName=b.PicName的结果数据里有`b`.`StepID` like concat(`a`.`StepID`,'%')?任意一条件不成立则没有数据了如:`a`.`PicName` like 'FDH-2101%'里有数据`a`.`StepID为(1,2,3)的
那你确定B表里:`b`.`PicName` like 'FDH-2101%'的数据里有`b`.`StepID like('1%','2%','3%')的数据?如B表里没有则不会返回了,A表里没有`a`.`PicName` like 'FDH-2101%'就更不会返回了
的含义是什么?我理解为:
a.StepID 打头的 b.StepID 是这样吗?
若是,改成这样看看
LEFT(b.StepID, LENGTH(a.StepID)) = a.StepID
那你确定B表里:`b`.`PicName` like 'FDH-2101%'的数据里有`b`.`StepID like('1%','2%','3%')的数据?如B表里没有则不会返回了,A表里没有`a`.`PicName` like 'FDH-2101%'就更不会返回了
应该是:如:`a`.`PicName` like 'FDH-2101%'里有数据`a`.`StepID为(1,2,3)的
那你确定B表里:`a`.`PicName`=`b`.`PicName` and `a`.`PicName` like 'FDH-2101%'的数据里有`b`.`StepID like('1%','2%','3%')的数据?如B表里没有则不会返回了,A表里没有`a`.`PicName` like 'FDH-2101%'就更不会返回了
CREATE TABLE IF NOT EXISTS `a` (
`PicName` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`StepID` int(5) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;--
-- 转存表中的数据 `a`
--INSERT INTO `a` (`PicName`, `StepID`) VALUES
('abc', 2),
('def', 1);
--
-- 表的结构 `b`
--CREATE TABLE IF NOT EXISTS `b` (
`PicName` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`StepID` int(5) NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;--
-- 转存表中的数据 `b`
--INSERT INTO `b` (`PicName`, `StepID`) VALUES
('abc', 201),
('def', 101);
SELECT `a` . * , `b` . *
FROM a, b
WHERE `a`.`PicName` = `b`.`PicName`
AND `a`.`PicName` LIKE 'ab%'
AND `b`.`StepID` LIKE concat( `a`.`StepID` , '%' ) 我都是能正确查询出结果的