我想使用第一个查询结果从第二个查询中获取数据。我想要的是从第一个查询获取id,并使用我得到的id获取内容。
My第一个查询
$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);
2号查询
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列错误"
您只需要一个查询,将图书表连接到购物车表以获取每本书的信息。
SELECT
books.*,
shopping_cart.book_id,
shopping_cart.title,
SUM(shopping_cart.quantity) AS total_sales
FROM
shopping_cart
INNER JOIN
books
ON
shopping_cart.book_id = books.id
GROUP BY
shopping_cart.title
ORDER BY
total_sales DESC