mysql从$ _GET中的另一个表中选择表

时间:2013-06-10 20:47:40

标签: mysql sql select

我需要从sub中选择id,其中mainid = $ cccc为iiid,之后选择cat = iiid的广告

并按ID desc limit 10

从广告订单中选择订单
$cccc=intval($_GET['cat']);
$DB = new DB;
$seleddcddddtMainwork ="select id from sub where mainid='$cccc' as iiid from ads where cat='$idididid' order by id desc limit 10  ";

我尝试了许多代码,但它不能与我合作。

我试过了:

select sub.mainid='$cccc' as idididid  from ads where cat='$idididid' order by id desc limit 10

但是我需要从sub获取id,其中mainid = cccc和ahter从cat = id

的广告中选择
CREATE TABLE IF NOT EXISTS `ads` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `userid` int(255) NOT NULL,
  `title` varchar(255) NOT NULL,
  `photo` varchar(255) NOT NULL,
  `message` varchar(255) NOT NULL,
  `price` int(255) NOT NULL,
  `contery` varchar(255) NOT NULL,
  `mobile` varchar(255) NOT NULL,
  `showmobile` int(255) NOT NULL,
  `showj` int(255) NOT NULL DEFAULT '0',
  `youtuube` varchar(255) NOT NULL,
  `cat` int(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `photo` (`photo`),
  KEY `title` (`title`),
  KEY `message` (`message`),
  KEY `price` (`price`),
  KEY `contery` (`contery`),
  KEY `mobile` (`mobile`),
  KEY `showmobile` (`showmobile`),
  KEY `show` (`showj`),
  KEY `youtuube` (`youtuube`),
  KEY `userid` (`userid`),
  KEY `cat` (`cat`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;


CREATE TABLE IF NOT EXISTS `sub` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `mainid` int(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`name`),
  KEY `mainid` (`mainid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=126 ;

我的最后一次尝试是:

select id from sub.mainid='$cccc' as idididid  from ads where cat='idididid' order by id desc limit 10 

也不起作用。

我只需要一个值$cccc=intval($_GET['cat']);,我需要从sub中选择id,其中mainid = $ cccc为iit,并从cat = iit中选择广告

另一件事

SELECT sub.id, sub.mainid
FROM sub                                                                                     
WHERE sub.mainid =  '2' 

此sub.id结果来自广告,其中cat = sub.id

1 个答案:

答案 0 :(得分:0)

为什么不加入?如果你想从表#2中的表#1中选择id,那么你应该通过id值加入这两个表:

$cccc=intval($_GET['cat']);
$DB = new DB;
$seleddcddddtMainwork ="select S.id from sub S JOIN ads A ON S.mainid=A.id AND C.cat='$idididid' AND S.mainid='$cccc' order by S.id desc limit 10";

确保选择所需的所有列。在上面的查询中,只选择了子表中的列id:

从....

中选择 S.id

从sub中选择列id,name和mainid,从广告中选择字段消息和价格:

$cccc=intval($_GET['cat']);
$DB = new DB;
$seleddcddddtMainwork ="select S.id, S.name, S.mainid, A.message, A.price from sub S JOIN ads A ON S.id=A.mainidAND C.cat='$idididid' AND S.mainid='$cccc' order by S.id desc limit 10";

编辑:

我将'S.id = A.id'上的JOIN更改为'S.id = A.mainid'我相信那些是您想要加入的ID。

回应你的评论:

  

我只有一个值$ cccc = intval($ _ GET ['cat']);我需要选择   来自sub的id,其中mainid = $ cccc为iit,并从广告中选择   猫= IIT

您可以执行以下操作:

$cccc=intval($_GET['cat']);
$DB = new DB;
$seleddcddddtMainwork ="select S.id, S.name, S.mainid as iit, A.message, A.price from sub S JOIN ads A ON S.mainid=A.cat AND S.mainid='$cccc' order by A.id desc limit 10";