내가 이는 MySQL은 : 표 A에서 행이 테이블 B에 표시되지 않거나 C
- 를 취할 필요가 찾아 이
특히 각 세트가 약 10k 인 경우 초기 세트에서 레코드를 빼기가 어렵습니다. 내가 사용하려고 시도한 쿼리는 속도가 느리거나 결과를 반환하는 것이 확실하지 않습니다. 숫자에 대한 답변을 얻으려고하기 때문에 쿼리가 특히 빠를 필요가 없습니다. . 다음 표는 내가 사용하고있는 테이블입니다 :
테이블 요리법 : 이들은 우리가 조작하고있는 요리법입니다. ID는 고유합니다.
mysql> select id, title from recipes limit 10;
+---------+---------------------------------------------+
| id | title |
+---------+---------------------------------------------+
| R162739 | Chipotle Steak |
| R223652 | Sweet Pea Mash on Toast |
| R216897 | Horchata Latte |
| R125550 | Roasted Beet and Fennel Salad |
| R196267 | Sweet Potatoes with Fruit |
| R215630 | Mini Oatmeal-Raisin Cookies |
| R219133 | Pork with Butternut Squash |
| R166935 | Herb-Ginger Bulgur |
| R208872 | Chocolate-Macadamia Dreams |
| R220442 | Smoked Turkey Salad |
+---------+---------------------------------------------+
표 recipe_log : 때마다 누군가가 메모가 로그 테이블에서 만든, 카테고리에 조리법을 추가합니다. 로그 테이블에는 약 14k 개의 레코드가 있습니다. 그 중 많은 유형이 관심있는 유형이 아닙니다. ID는 고유하지 않습니다. 동일한 레서피 ID에는 많은 레코드가있을 수 있습니다.
mysql> select * from recipe_log where type='category changes' limit 10;
+---------+---------------------+------------------+------+
| id | date | type | note |
+---------+---------------------+------------------+------+
| R216064 | 2014-05-23 19:05:47 | category changes | NULL |
| R216064 | 2014-05-23 19:06:11 | category changes | NULL |
| R178159 | 2014-05-23 21:55:08 | category changes | NULL |
| R178159 | 2014-05-24 02:13:34 | category changes | NULL |
| R178159 | 2014-05-24 21:49:20 | category changes | NULL |
| r178159 | 2014-05-24 21:52:52 | category changes | NULL |
| r178613 | 2014-05-24 21:58:07 | category changes | NULL |
| r178613 | 2014-05-24 21:59:24 | category changes | NULL |
| r178159 | 2014-05-24 22:00:11 | category changes | NULL |
| r178613 | 2014-05-24 22:00:51 | category changes | NULL |
+---------+---------------------+------------------+------+
표 recipe_batches :이 표는 이미 배치에 추가 된 레시피가 포함되어 있습니다. ID는 고유하지 않습니다. 동일한 제조법이 둘 이상의 배치에 추가 될 수 있습니다. 이 표에는 약 10 개의 레코드가 있습니다.
mysql> select recipe_id, batch_id, date from recipe_batches limit 10;
+-----------+----------+---------------------+
| recipe_id | batch_id | date |
+-----------+----------+---------------------+
| R109651 | EH_1_250 | 2014-06-04 01:01:01 |
| R111068 | EH_1_250 | 2014-06-04 01:01:01 |
| R113500 | EH_1_250 | 2014-06-04 01:01:01 |
| R117349 | EH_1_250 | 2014-06-04 01:01:01 |
| R117494 | EH_1_250 | 2014-06-04 01:01:01 |
| R109648 | EH_1_250 | 2014-06-04 01:01:01 |
| R109652 | EH_1_250 | 2014-06-04 01:01:01 |
| R110440 | EH_1_250 | 2014-06-04 01:01:01 |
| R113004 | EH_1_250 | 2014-06-04 01:01:01 |
| R111068 | EH_1_250 | 2014-06-04 01:01:01 |
+-----------+----------+---------------------+
나는 당신의 논리에 분명히 동의합니다. 이미 분류 된 것을 가져 와서 그 결과로 다른 테이블에서 나머지 데이터를 삭제하면됩니다. – Jhecht
예 그가 실제로 DELETE를 실행하거나 그냥 ID 목록을 가져 오는지 잘 모르겠습니다. – SQLChao
그래, 네가 무슨 말하는지 알지. 나는 우리가 거꾸로 일하고 있다고 생각합니다. 먼저 여과 된 것들을 얻은 다음 큰 것들을 다루는 것입니다. 웬일인지 그는 바늘을 얻을 때까지 건초 더미에서 시작하여 더미를 얇게 만들고 싶어합니다. – Jhecht