Так называемые суб-запрос является первым, чтобы проверить результат с помощью заявления, а затем по результатам запроса из запроса снова. Subquery обычно имеют следующие три вида. Здесь, чтобы сделать дело, чтобы объяснить.
Корпус: проверить последнюю информацию о продукте, что одна по каждой классификации в [примере 1].
Если запрос по одной фразе, чтобы получить охват. Как следует неправильно:
выбрать макс (goods_id), cat_id, goods_name из товаров группы по cat_id;
Таким образом, чтобы получить последний номер продукта ID goods_id каждой категории, но другую информацию, такую как название продукта goods_name, что один старый. Поэтому для того, чтобы получить самую последнюю информацию о каждой категории товаров, либо отдельное заявление для запроса или суб-запрос.
1: где подзапрос.
выберите * от товаров, где goods_id в (выбрать макс (goods_id) из группы товаров по cat_id);
Этот код, мы сначала проверить последний с группой по продукции ID для каждой категории, а затем, где ... в () условный оператор проверить последний СУВЕНИРЫ идентификатор каждой категории информационных товаров. Вот группа заявления, как ребенок, когда запрос.
2: от суб-запроса.
выберите * от (выберите * от заказа товаров по cat_id, goods_id по убыванию) в качестве Г.К. группы по cat_id;
Из суб-запроса для выбора в качестве результата запроса к таблице, например, как жирным шрифтом над кодом. Примечание: вы должны выбрать набор результатов запроса в качестве псевдонима, например, как красная часть кода выше. В противном случае это будет ошибка.
Таким образом, мы также проверить последнюю информацию по каждой категории товаров.
3: существует подзапрос:
Тема: Запрос товар, согласно которому раздел [Пример 1]. Название по каталогу: категория
* выберите из категории, где существует (выбрать * из товаров, где goods.cat_id = category.cat_id)
上句中的exists排查了(当商品表中的分类ID=分类表中的分类ID)时,有没有商品。如果有,就再查询这个分类的信息,如查没有,就排除这个分类。最后结果就是,查询出了有商品的商品分类信息。
嗯,这里我们介绍了3种比较常用的mysql数据库子查询语句:where子查询语句、from子查询语句、exists子查询语句。当然,如果你不想使用子查询语句,也可以把它们拆分成2个语句来执行,效果也是一样的。