나는 약 3000 개의 키워드 및 model_ids와 함께 테이블 tbl_random
을 가지고있다.다른 테이블에서 임의의 레코드로 지정된 mySQL 테이블을 업데이트하는 방법
+---------+------------+---------+---------+--------------+
| keyword | model_id | make | model | more_data |
+---------+------------+---------+---------+--------------+
| apple1 | 15 | | | |
| apple2 | 15 | | | |
| pear | 205 | | | |
| cherry | 307 | | | |
| melon | 5023 | | | |
+---------+------------+---------+---------+--------------+
내가 그들에 대해 실제 제품과 세부 사항을 포함 약 50 만 레코드 두 번째 테이블 tbl_products
있습니다 :
+---------+--------+------------+
| make | model | more_data |
+---------+--------+------------+
| app1 | 15 | data1 |
| app1 | 15 | data2 |
| cher74 | 307 | data4 |
| melo2 | 5023 | data5 |
| pear53 | 205 | data3 |
+---------+--------+------------+
두 테이블 사이의 공통 식별자 키워드 model_ids이 아닌, 고유 각각 model_id
및 model
입니다. 에서 모든 model_id
일치
를 쿼리가 tbl_products
에서 한 임의 행을 선택한다 : 내가해야 할 일은
그 기준에 따라 tbl_random
에서 make
model
및 more_data
를 업데이트 할 것 UPDATE MySQL의 쿼리를 작성하는 것입니다 고유 한 키워드는 tbl_random
입니다.
나는 UPDATE, LEFT JOIN 및 SELECT STATEMENTS를 사용하여 다양한 방법으로이 작업을 시도했지만 지금까지는 작동하지 않습니다. 단지 make
업데이트하려고
내 최신 문은, 그러나 그것은 작동하지 않습니다,이 하나입니다 - MySQL은 그것을 실행을 시작하고 아무것도 내가 다시 사용할 얻기 위해 MySQL을 다시 시작해야한다는 것을 제외하고는 발생하지 :
UPDATE tbl_random
SET tbl_random.make =
(SELECT tbl_products.make FROM tbl_products
WHERE tbl_random.model_id = tbl_products.model
GROUP BY tbl_random.keyword
ORDER BY RAND())
tbl_random
에 대한 최종 원하는 출력이 하나입니다
+---------+------------+---------+---------+--------------+
| keyword | model_id | make | model | more_data |
+---------+------------+---------+---------+--------------+
| apple1 | 15 | app1 | 15 | data1 |
| apple2 | 15 | app1 | 15 | data2 |
| pear | 205 | pear53 | 205 | data3 |
| cherry | 307 | cher74 | 307 | data4 |
| melon | 5023 | melo2 | 5023 | data5 |
+---------+------------+---------+---------+--------------+
어떤 도움이나 제안이 이해할 수있을 것이다!
위의 select 문만 실행하면 다음과 같이 나타납니다. '# 1054 -'where clause '의'tbl_random.model_id '에 알 수없는 열 – BradG
btw, 내가 성공적으로 수행 한 작업은 두 테이블을 외부 조인하는 것입니다. 이 문, 난 단지 그에 따라'tbl_random' 테이블을 업데이트 할 수없는 것 : \t \t \t \t \t \t 이 tbl_random에서 왼쪽 외부 조인,'tbl_random.keyword, tbl_random.model_id, tbl_products.make, tbl_products.model을 선택 \t \t \t \t \t \t tbl_products \t \t \t \t \t ON tbl_random.model_id = tbl_products.RAND에 의해 tbl_random \t \t \t \t \t \t 주문 \t \t \t \t \t \t GROUP 모델()' – BradG
@Strawberry, 예상대로 당신의 작품 위 내 댓글에 문 및 데이터 내가 그것을 필요로하는 방법을 제공합니다. 그러나 선택 쿼리에서 가져 오는 것이 아니라 상수 테이블에서 업데이트해야합니다. 만약 당신이 다른 제안을 가지고 있다면 기꺼이 토론 할 것입니다. – BradG