0

我需要从 sub where mainid = $cccc as iiid 中选择 id,然后从 cat = iiid 的广告中选择

并从ads order by 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 where mainid=cccc 和 ahter 获取 id,从 cat = that 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 where mainid=$cccc as iit 中选择 id 并从 cat=iit 的广告中选择

另一件事

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

此 sub.id 的结果 来自 cat = sub.id 的广告的结果

4

1 回答 1

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,从 ads 中选择字段 message 和 price:

$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";

编辑:

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

回应您的评论:

我只有一个值 $cccc=intval($_GET['cat']); 我需要从 sub where mainid=$cccc as iit 中选择 id 并从 cat=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";
于 2013-06-10T20:59:28.327 回答