先说说条件,参考下图说明,图中有两个表,其中这两个表有一个字段是相等的,即classid字段,
现在我想利用tagid这个字段的值(如等于3)查询出另一个表中的所有符合条件的数据,如何写我这么写不对,不知为啥有问题SELECT DISTINCT productpic,titleurl,titlepic FROM hd_ecms_shop INNER JOIN hd_enewstagsdata ON hd_ecms_shop.classid = hd_enewstagsdata.classid WHERE hd_enewstagsdata.tagid = 3

解决方案 »

  1.   

    SELECT DISTINCT productpic,titleurl,titlepic FROM hd_ecms_shop  left JOIN
     hd_enewstagsdata ON hd_ecms_shop.classid = hd_enewstagsdata.classid 
    WHERE hd_enewstagsdata.tagid = 3
      

  2.   

    有人可能会想这样
    SELECT DISTINCT productpic, titleurl, titlepic FROM hd_ecms_shop where EXISTS (SELECT hd_enewstagsdata.tagid, hd_enewstagsdata.classid FROM hd_enewstagsdata WHERE hd_enewstagsdata.tagid = 3 AND hd_enewstagsdata.classid = 17)
    我试了也不行
      

  3.   

    你的条件是什么呢?都没说清楚
    按我猜测的,你试试这个吧
    SELECT DISTINCT productpic,titleurl,titlepic FROM hd_ecms_shop INNER JOIN hd_enewstagsdata ON hd_ecms_shop.id = hd_enewstagsdata.id WHERE hd_enewstagsdata.tagid = 3
      

  4.   

    既然你两个表的classid名字一模一样就可以用natural join这个方法
    SELECT DISTINCT productpic,titleurl,titlepic
     FROM hd_ecms_shop NATURAL JOIN hd_enewstagsdata 
     WHERE hd_enewstagsdata.tagid = 3