SQL 키워드 = 및 경쟁자 = 테이블에서 최신 결과 선택

알렉스 헬리 어

다음과 같은 두 개의 테이블이 있습니다.

tablename: input_keywords
Cols: keyword, last_check, pages_deep, check_freq_days

tablename: rank_result
Cols: keyword, result_url, position, last_check, competitor

input_keywords.keyword는 고유하므로 키워드를 두 개 이상 검색하지 않습니다.

rank_result는 크롤링의 모든 데이터를 유지하고 일부 메타 데이터를 저장합니다.

다음을 보여줘야합니다

a = input_keywords
b = rank_result

a.keyword, a.last_check, b.position WHERE b.competitor = 'xxx'

그러나 rank_result에서 LAST / 가장 최근 결과 만 선택합니다.

나는 몇 가지 다른 답변을 따르려고 시도했지만 내가 기대하는 결과를 얻지 못했습니다.


업데이트 1

CREATE TABLE `input_keywords` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `keyword` char(150) DEFAULT NULL COMMENT 'the keyword....',
  `last_check` timestamp NULL DEFAULT '2000-01-01 00:00:00' COMMENT 'Last check timestamp, default to years ago so we check immediatly',
  `CREATION` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `MODIFICATION` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `p_deep` int(1) DEFAULT '5' COMMENT 'how many pages deep to search - default 5',
  `check_freq_days` int(11) DEFAULT '3' COMMENT 'how often to check this keyword in DAYS default 3',
  `type` char(50) DEFAULT NULL COMMENT 'Product, Category, other etc',
  PRIMARY KEY (`id`),
  UNIQUE KEY `UNQ_Keyword` (`keyword`)
) ENGINE=InnoDB AUTO_INCREMENT=5865 DEFAULT CHARSET=utf8;


CREATE TABLE `rank_result` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `keyword` char(150) DEFAULT '',
  `result_url` text,
  `position` int(11) DEFAULT NULL,
  `check_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `useragent_used` char(255) DEFAULT NULL,
  `proxy_log` text,
  `check_date` date DEFAULT NULL COMMENT 'date of the check - easier for graph plotting',
  `competitor` tinytext,
  PRIMARY KEY (`id`),
  KEY `idx_KEYWORD` (`keyword`),
  KEY `keyword` (`keyword`,`check_time`,`competitor`(50))
) ENGINE=InnoDB AUTO_INCREMENT=2868936 DEFAULT CHARSET=utf8;

input_keywords의 예제 내용

----------------------------------------------------------------------------------------------------------------------------------
| id | keyword               | last_check          | CREATION            | MODIFICATION        | p_deep | check_freq_days | type |
----------------------------------------------------------------------------------------------------------------------------------
| 1  | acoustic guitars      | 2017-03-07 17:03:55 | 2017-01-20 12:27:17 | 2017-03-07 17:03:55 | 5      | 1               | NULL |
----------------------------------------------------------------------------------------------------------------------------------
| 2  | guitar accessories    | 2017-03-05 11:03:49 | 2017-01-20 12:27:27 | 2017-03-05 11:03:49 | 5      | 3               | NULL |
----------------------------------------------------------------------------------------------------------------------------------
| 3  | guitar amps           | 2017-03-05 11:04:05 | 2017-01-20 12:27:33 | 2017-03-05 11:04:06 | 5      | 3               | NULL |
----------------------------------------------------------------------------------------------------------------------------------
| 4  | guitar strings        | 2017-03-05 13:03:51 | 2017-01-20 12:27:42 | 2017-03-05 13:03:51 | 5      | 3               | NULL |
----------------------------------------------------------------------------------------------------------------------------------
| 5  | guitar effects pedals | 2017-03-05 11:03:43 | 2017-01-20 12:27:50 | 2017-03-05 11:03:43 | 5      | 3               | NULL |
----------------------------------------------------------------------------------------------------------------------------------



---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| id  | keyword          | result_url                           | position | check_time          | useragent_used                       | proxy_log | check_date | competitor   |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 493 | acoustic guitars | http://www.competitor.com/… | 1        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | Competitor1      |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 494 | acoustic guitars | http://competitor2.com… | 2        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | Competitor2   |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 495 | acoustic guitars | https://out_website.com | 3        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | US    |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 496 | acoustic guitars | http://competitor3.com | 4        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | Competitor3 |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 497 | acoustic guitars | http://competitor4.com | 5        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | NULL         |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 498 | acoustic guitars | https://www.amazon.co.uk/acoustic-g… | 6        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | Amazon       |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 499 | acoustic guitars | http://compx.com | 7        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | compX          |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 500 | acoustic guitars | http://compx.com | 8        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | compX      |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 501 | acoustic guitars | http://www. compx.com/  | 9        | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | NULL         |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 502 | acoustic guitars | http://www. compx.com… | 10       | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | NULL         |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 503 | acoustic guitars | http://www. compx.com/        | 11       | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | NULL         |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 504 | acoustic guitars | http://www. compx.com… | 12       | 2017-01-18 09:36:17 | Mozilla/5.0 (compatible; MSIE 10.0;… | NULL      | 2017-01-18 | NULL         |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

이 표에는 키워드 순위를 확인한 매일 기록이 있습니다 (따라서 동일한 키워드 및 경쟁자에 대한 기록이 많습니다).

순위가 있으면 순위 만 필요하고 그렇지 않으면 키워드 만 반환합니다.

내 이상적인 결과는

|keyword  | last_check | p_deep | check_freq_days | position |
|keyword1 | 2017-03-06 | 5      |.  3.            | 4.       |
|keyword2 | 2017-03-06 | 5.     |.  3.            | NULL.    |

나의 최선의 시도는 :

select input_keywords.keyword, input_keywords.last_check, input_keywords.p_deep, `input_keywords`.`check_freq_days`, rank_result.position from input_keywords join rank_result on input_keywords.keyword=rank_result.keyword where rank_result.competitor = 'OurCompany' and input_keywords.last_check=rank_result.check_time

그리고 이것은 거의 작동하지만 목록에 없으면 결과를 반환하지 않습니다.

input_keywords에서 시작 하면서 모든 키워드와 현재 순위 (있는 경우)를 나열하려고했습니다.

알렉스 헬리 어

나는 다음을 수행하여 이것을 해결했습니다.

  1. input_keywords테이블에 경쟁사 필드 추가
  2. 쿼리 속도를 높이기 위해 일부 인덱스 추가

다음 SQL 생성

SELECT i.`keyword`, i.`last_check`, i.`p_deep`, i.`check_freq_days`, r.`position`
  FROM input_keywords i
  LEFT JOIN rank_result r 
    ON i.`keyword` = r.`keyword` AND i.`competitor` = r.`competitor` AND i.`last_check` = r.`check_time`

그러면 순위에서 마지막으로 알려진 위치와 함께 입력 키워드 당 단일 행이 반환됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

MS SQL에서 가장 최근 레코드를 선택하기위한 그룹화 및 정렬 결과

분류에서Dev

PHP SQL 키워드로 여러 테이블 검색 및 검색 결과 표시

분류에서Dev

SQL을 사용하여 테이블에서 최신 메시지 스레드 값 선택

분류에서Dev

MySQL 테이블에서 최신 중복 레코드 선택

분류에서Dev

Oracle SQL : ID 및 날짜로 최신 레코드 만 선택

분류에서Dev

테이블 결과에서 선택에 대한 SQL 성능

분류에서Dev

SQL 값이 "선택됨"인 경우 직원에 대한 최신 레코드 선택

분류에서Dev

문자열 SQL에서 최대 일치 순서로 결과 선택

분류에서Dev

SQL MS ACCESS : 테이블 간의 선택적 작업 및 결과 필터링

분류에서Dev

선택 및 조인을 사용하여 테이블이없는 경우 Oracle SQL에서 테이블 생성

분류에서Dev

SQL 테이블에서 최신 데이터를 선택 하시겠습니까?

분류에서Dev

MYSQL에서 선택한 결과 테이블의 열 변경

분류에서Dev

SQL Server-외래 키에서 최소 날짜 및 ID 선택

분류에서Dev

SQL 동일한 테이블에서 두 개의 최대 행을 선택하고 세 번째 테이블과 결합

분류에서Dev

pdo 테이블에서 최신 선택

분류에서Dev

중복을 제외한 결합 된 테이블에서 최신 항목 선택

분류에서Dev

조인 테이블의 최신 행을 기반으로 MySQL 결과 선택

분류에서Dev

SQL Server-조건이있는 최신 레코드 선택

분류에서Dev

여러 테이블에서 최대 및 최소 선택

분류에서Dev

SQL : 다른 테이블에서 사용자 정보 및 최신 날짜 기록 가져 오기

분류에서Dev

SQL 데이터베이스에서 최신 3 개 레코드 선택

분류에서Dev

SQL 데이터베이스에서 최신 3 개 레코드 선택

분류에서Dev

DateTime 필드를 기반으로 최신 결과 선택

분류에서Dev

SQL Server : 동일한 결과의 다른 2 개 테이블에서 선택

분류에서Dev

동적 SQL 결과에서 임시 테이블로 *를 선택하십시오.

분류에서Dev

SQl 구문을 사용하여 MySQL 테이블의 그룹에서 최신 레코드를 선택하는 방법

분류에서Dev

사용자 온 보딩 키워드 선택에서 과도한 중복 제거

분류에서Dev

2 개의 테이블에서 SQL 쿼리. 선택 및 검색

분류에서Dev

중복이있는 경우 최신 레코드 만 선택하는 SQL (SCCM 데이터베이스)의 쿼리

Related 관련 기사

  1. 1

    MS SQL에서 가장 최근 레코드를 선택하기위한 그룹화 및 정렬 결과

  2. 2

    PHP SQL 키워드로 여러 테이블 검색 및 검색 결과 표시

  3. 3

    SQL을 사용하여 테이블에서 최신 메시지 스레드 값 선택

  4. 4

    MySQL 테이블에서 최신 중복 레코드 선택

  5. 5

    Oracle SQL : ID 및 날짜로 최신 레코드 만 선택

  6. 6

    테이블 결과에서 선택에 대한 SQL 성능

  7. 7

    SQL 값이 "선택됨"인 경우 직원에 대한 최신 레코드 선택

  8. 8

    문자열 SQL에서 최대 일치 순서로 결과 선택

  9. 9

    SQL MS ACCESS : 테이블 간의 선택적 작업 및 결과 필터링

  10. 10

    선택 및 조인을 사용하여 테이블이없는 경우 Oracle SQL에서 테이블 생성

  11. 11

    SQL 테이블에서 최신 데이터를 선택 하시겠습니까?

  12. 12

    MYSQL에서 선택한 결과 테이블의 열 변경

  13. 13

    SQL Server-외래 키에서 최소 날짜 및 ID 선택

  14. 14

    SQL 동일한 테이블에서 두 개의 최대 행을 선택하고 세 번째 테이블과 결합

  15. 15

    pdo 테이블에서 최신 선택

  16. 16

    중복을 제외한 결합 된 테이블에서 최신 항목 선택

  17. 17

    조인 테이블의 최신 행을 기반으로 MySQL 결과 선택

  18. 18

    SQL Server-조건이있는 최신 레코드 선택

  19. 19

    여러 테이블에서 최대 및 최소 선택

  20. 20

    SQL : 다른 테이블에서 사용자 정보 및 최신 날짜 기록 가져 오기

  21. 21

    SQL 데이터베이스에서 최신 3 개 레코드 선택

  22. 22

    SQL 데이터베이스에서 최신 3 개 레코드 선택

  23. 23

    DateTime 필드를 기반으로 최신 결과 선택

  24. 24

    SQL Server : 동일한 결과의 다른 2 개 테이블에서 선택

  25. 25

    동적 SQL 결과에서 임시 테이블로 *를 선택하십시오.

  26. 26

    SQl 구문을 사용하여 MySQL 테이블의 그룹에서 최신 레코드를 선택하는 방법

  27. 27

    사용자 온 보딩 키워드 선택에서 과도한 중복 제거

  28. 28

    2 개의 테이블에서 SQL 쿼리. 선택 및 검색

  29. 29

    중복이있는 경우 최신 레코드 만 선택하는 SQL (SCCM 데이터베이스)의 쿼리

뜨겁다태그

보관