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`取不到值,应该是符号的问题,试了半天都不行,引号,双引号都试过了

解决方案 »

  1.   

    放到 phpmyadmin 里运行看看
      

  2.   

    不行啊,我把concat(`a`.`StepID`,'%')改成concat(`1`,'%')就行了,我是在PHP页面中写的
      

  3.   

    哥们,试下这个.
    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,'%') 
      

  4.   

    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 `a`.`StepID`.concat('%') 这样呢?
      

  5.   

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( '%' ) 
    LIMIT 0, 30' at line 1 
      

  6.   

    语句好象没什么问题。
    但你确定在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%'就更不会返回了
      

  7.   

    `b`.`StepID` like concat(`a`.`StepID`,'%') 
    的含义是什么?我理解为:
    a.StepID  打头的 b.StepID 是这样吗?
    若是,改成这样看看
    LEFT(b.StepID, LENGTH(a.StepID)) = a.StepID
      

  8.   

    如:`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`.`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%'就更不会返回了
      

  9.   


    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` , '%' ) 我都是能正确查询出结果的
      

  10.   

    有没有试过a.StepID不加引号?`b`.`StepID` like concat(a.StepID,'%')