【发布时间】:2011-10-16 10:48:33
【问题描述】:
我想使用第一个查询结果从我的第二个查询中获取数据。但我不能我想要的是从第一个查询中获取 id 并使用我得到的 id 获取内容。
我的第一个查询
$query = "SELECT book_id , title, SUM(quantity) AS total_sales FROM shopping_cart GROUP BY title ORDER BY total_sales DESC ";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$row = mysqli_fetch_array($result);
第二次查询
for ($rcount = 0; $rcount < count($row); $rcount++) {
$wanted_id = $result[$rcount]['book_id'];
$query1 = "SELECT * FROM books where id ='$wanted_id' ";
$result1 = mysqli_query($link, $query) or die(mysqli_error($link));
}
我知道它有问题,但现在我似乎无法弄清楚我该怎么做,我想知道我是否打算使用嵌套查询。
编辑:这是我的嵌套查询
$query = "SELECT * from books where id IN (SELECT book_id AS id, title, SUM(quantity) AS total_sales FROM shopping_cart GROUP BY title ORDER BY total_sales DESC )";
我得到一个“操作数应该包含 1 列错误”但是
【问题讨论】:
-
不应该是
$wanted_id = $row[$rcount]['book_id']吗? -
另外,我相信您需要使用
UNION进行多项选择。 -
我没有组合 2 个结果,而是我的第一个查询 where 子句假设从第二个查询中获取其条件