MySQL 데이터베이스에서 Navicat을 사용하여 여러 ID 값 필터링
P粉285587590
2023-08-28 17:09:38
<p>id_product를 반복하지 않고 가장 최근의 만료일과 판매 가격을 사용하여 데이터를 필터링해야 하는데, 이 문제를 해결하려고 했지만 올바른 방법을 찾을 수 없습니다</p>
<p>Navicat 쿼리 및 결과입니다</p>
<pre class="brush:php;toolbar:false;">SELECT
product_exp_date.id제품,
product_exp_date.exp_date,
product_exp_date.판매_가격
에서
제품
내부 조인
product_exp_date
에
product.idproduct = product_exp_date.idproduct
그룹 기준
product_exp_date.exp_date</pre>
<pre class="brush:php;toolbar:false;">idproduct exp_date sales_price
8 2022-11-01 300
5 2022-06-08 370
5 2022-06-09 350
7 2022-07-01 380
5 2022-09-20 450
6 2022-10-08 140
6 2023-06-08 150
<p>저는 이런 방법으로 시도해 보았습니다</p>
<pre class="brush:php;toolbar:false;">GROUP BY
product_exp_date.id제품</pre>
<p>하지만 다른 결과가 나왔습니다</p>
<pre class="brush:php;toolbar:false;">idproduct exp_date sales_price
5 2022-06-09 350
6 2023-06-08 150
7 2022-07-01 380
8 2022-11-01 300
<p>하지만 이 결과를 얻어야 합니다</p>
<pre class="brush:php;toolbar:false;">idproduct exp_date sales_price
5 2022-06-08 370
6 2022-10-08 140
7 2022-07-01 380
8 2022-11-01 300
<p>제품 목록</p>
<pre class="brush:php;toolbar:false;">productid product_name
5A
6B
7C
8D</pre>
<p>Product_EXP_DateTable</p>
<pre class="brush:php;toolbar:false;">idproduct_exp_date idproduct exp_date Selling_price
1 5 2022-06-09 350
2 6 2023-06-08 150
3 5 2022-06-08 370
4 5 2022-09-20 450
5 6 2022-10-08 140
6 7 2022-07-01 380
7 8 2022-11-01 300</pre>
<p>가끔 검색어에 오류가 있는 경우가 있습니다. 어쨌든 이 문제를 해결하려면 도움이 필요합니다.
감사해요. </p>
우선, 이는 Navicat 쿼리가 아니라 MySQL 쿼리라는 점을 정정해 드리겠습니다. 이제 이것은 두 가지 다른 것입니다. MySQL은 데이터베이스이고 Navicat은 도구입니다. MySQL Workbench, PHPMyAdmin 또는 SQLyog와 같은 다른 도구와 유사합니다. 그래픽 인터페이스를 통해 데이터베이스 기능을 수행할 수 있도록 설계되었습니다.
다음으로 두 가지 쿼리를 제공하겠습니다. MySQL 버전에 따라 그 중 하나를 사용할 수 있습니다. 첫 번째 쿼리는 다음과 같습니다.
으아악모든 버전의 MySQL 또는 MariaDB에서 위 쿼리를 실행할 수 있어야 합니다. 이 쿼리의 아이디어는
idproduct
分组获取最小的exp_date
,然后将其作为子查询,再次与product
表进行连接,以匹配这两个提取的值,以便我们可以提取selling_price
를 통해서입니다.두 번째 쿼리:
으아악이 쿼리는 창 기능을 지원하는 MySQL v8+ 또는 MariaDB 10.2+(이상)에서만 실행할 수 있습니다. 이전 쿼리와는 아이디어가 약간 다릅니다. 여기서는 특정 조건을 기반으로
ROW_NUMBER()
,然后将其作为子查询,并只添加一个WHERE
子句。与之前的查询相比,这不需要JOIN
작업을 생성하는 데 중점을 둘 것입니다.product
테이블이 원래 쿼리에서 사용되는 것을 보지 못했기 때문에 고려하지 않았다는 것을 알 수 있지만, 함께 조인해야 하는데 어떻게 해야 할지 알 수 없다면, 그냥 메시지를 남기고 제가 무엇을 할 수 있는지 알아보겠습니다.데모 바이올린