MySQL 쿼리 선택 기준으로 쿼리하지 - 업데이트

데릭쉐퍼드와 확인할 수 있는 경우 (같은 테이블에서) 간의 연관입니다 기준으로 두 종목에서 날짜-시간.

한 데이터 세트를 포함할 것인지, 다른 데이터 집합을 기간말 날짜-시간 특정 이벤트 시작 날짜-시간 다른 이벤트에 대한 포함됩니다.

만약 첫 이벤트 완료 후 두 번째 이벤트 후 이들을 연결하는 백업하도록 싶다.

내가 그동안 입니다.

SELECT name as name_A, date-time as end_DTS, id as id_A 
FROM tableA WHERE criteria = 1

SELECT name as name_B, date-time as start_DTS, id as id_B 
FROM tableA WHERE criteria = 2

그럼 내가 그들을 참가하십시오.

SELECT name_A, name_B, id_A, id_B, 
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B

그런 다음, 내 validation_check 필드이므로 수 기준으로 실행하십시오 포함된 쿼리입니다 업데이트하십시오 선택 네스트된?

질문에 대한 의견 (1)
해결책

실제로 이 두 가지 방식으로 할 수 있습니다.

MySQL 업데이트하십시오 조인 구문을:

UPDATE tableA a
INNER JOIN tableB b ON a.name_a = b.name_b
SET validation_check = if(start_dts > end_dts, 'VALID', '')
-- where clause can go here

ANSI SQL 구문.

UPDATE tableA SET validation_check = 
    (SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check
        FROM tableA
        INNER JOIN tableB ON name_A = name_B
        WHERE id_A = tableA.id_A)

가장 자연스러운 것 중 하나를 선택할 수 있습니다.

해설 (8)
UPDATE
    `table1` AS `dest`,
    (
        SELECT
            *
        FROM
            `table2`
        WHERE
            `id` = x
    ) AS `src`
SET
    `dest`.`col1` = `src`.`col1`
WHERE
    `dest`.`id` = x
;

ᄋ "이번 잘 어울려.

해설 (3)

Mysql 에서 쉽게.

UPDATE users AS U1, users AS U2 
SET U1.name_one = U2.name_colX
WHERE U2.user_id = U1.user_id
해설 (0)

만약 누군가 노리고 있는 데이터를 하나의 어플라이언스에서 업데이트하려면 데이터베이스 테이블 이들은 다른 관계없이 대상으로 특정 기준에 그렇게 할 수 있어야 합니다.

이 모든 게 더 좋은데 및 청소하십시오 레벨:

UPDATE dbname1.content targetTable

LEFT JOIN dbname2.someothertable sourceTable ON
    targetTable.compare_field= sourceTable.compare_field
SET
    targetTable.col1  = sourceTable.cola,
    targetTable.col2 = sourceTable.colb, 
    targetTable.col3 = sourceTable.colc, 
    targetTable.col4 = sourceTable.cold 

트레라! 작동하잖아 엄청난거야!

위의 이해, on&quot &quot 설정되었습니다 필드와 함께 수정할 수 있습니다. 조건을 잔말. 확인 후 당기십시오 수행할 수도 있습니다 (s) 및 데이터 꽂으십시오 임시 테이블 위 구문을 사용하여 업데이트를 실행하십시오 교체하는 테이블 및 열 이름.

희망 작동하잖아, 만약 그렇지 않다면 알려주세요. 정확한 쿼리합니다 내아기마저도 쓸 수 있습니다.

해설 (0)
UPDATE 
  receipt_invoices dest,
  (
    SELECT 
      `receipt_id`,
      CAST((net * 100) / 112 AS DECIMAL (11, 2)) witoutvat 
    FROM
      receipt 
    WHERE CAST((net * 100) / 112 AS DECIMAL (11, 2)) != total 
      AND vat_percentage = 12
  ) src 
SET
  dest.price = src.witoutvat,
  dest.amount = src.witoutvat 
WHERE col_tobefixed = 1 
  AND dest.`receipt_id` = src.receipt_id ;

ᄋ "이번 사건은 일치시키려면 및 업데이트하려면 두 테이블 사이에 있는 가지는 데 도움이 될 것입니다.

해설 (0)

이 질문에는 내가 찾은 내 스스로 해결책을 찾기 위해 매우 복잡한 bigadmin. 이는 수 있는 대안 솔루션으로, 보다 복잡한 문제를 버전니다 생각해봤죠 유용할 수 있습니다.

내가 product_id 채우는 데 필요한 활동 테이블, 여기서 활동은 필드에 있는 유닛 및 단위가 번호가 매겨진 받을시간은 수준 (사용하여 식별됩니다 문자열으로?? N), 이러한 활동을 통해 확인할 수 있는 SKU ie L1U1A1. 그 후 다른 테이블을 저장됩니까 sku 있다.

난 다음 목록을 가져올 수 있으며 식별됩니다 activity_id vs product_id: -

SELECT a.activity_id, w.product_id 
  FROM activities a 
  JOIN units USING(unit_id) 
  JOIN product_types USING(product_type_id) 
  JOIN web_products w 
    ON sku=CONCAT('L',SUBSTR(product_type_code,3), 'U',unit_index, 'A',activity_index)

그건 너무 복잡한 통합하기 위해 선택할 수 있다는 것을 나는 내가 만든 임시 테이블, mysql, 그래서 그 안에 있는 업데이트 및 결합되었는지 기술서임을 -

CREATE TEMPORARY TABLE activity_product_ids AS ();

UPDATE activities a
  JOIN activity_product_ids b
    ON a.activity_id=b.activity_id 
  SET a.product_id=b.product_id;

만약에 이 유용한 사람이 됐으면 좋겠다 "고 말했다

해설 (1)
UPDATE [table_name] AS T1,
      (SELECT [column_name] 
        FROM [table_name] 
        WHERE [column_name] = [value]) AS T2 
  SET T1.[column_name]=T2.[column_name] + 1
WHERE T1.[column_name] = [value];
해설 (0)

이 같은 내부 조인을 사용하여 테이블을 다른 값을 업데이트 할 수 있습니다

UPDATE [table1_name] AS t1 INNER JOIN [table2_name] AS t2 ON t1.column1_name] = t2.[column1_name] SET t1.[column2_name] = t2.column2_name];

여기 준수하십시오 사용할 줄 아는 이 질의에서는 http://www.voidtricks.com/mysql-inner-join-update/

또는 이를 서브케리 select 를 사용할 수 있습니다.

UPDATE [table_name] SET [column_name] = (SELECT [column_name] FROM [table_name] WHERE [column_name] = [value]) WHERE [column_name] = [value];

여기서 자세히 설명된 쿼리합니다. http://www.voidtricks.com/mysql-update-from-select/

해설 (0)

사용할 수 있습니다.

UPDATE Station AS st1, StationOld AS st2
   SET st1.already_used = 1
 WHERE st1.code = st2.code
해설 (0)

동일한 경우 테이블,

UPDATE PHA_BILL_SEGMENT AS PHA,
     (SELECT BILL_ID, COUNT(REGISTRATION_NUMBER) AS REG 
       FROM PHA_BILL_SEGMENT
        GROUP BY REGISTRATION_NUMBER, BILL_DATE, BILL_AMOUNT
        HAVING REG > 1) T
    SET PHA.BILL_DATE = PHA.BILL_DATE + 2
 WHERE PHA.BILL_ID = T.BILL_ID;
해설 (0)

중복되는 항목이 한 테이블 자체는 문제가 있었습니다. 다음은 날 위해 일하는 방식이 있었다. @Sibaz 주창한 도 기울어져 있다.

마지막으로 내가 아래 쿼리합니다 사용하여 이를 해결했다.

  1. 저장된 질의입니다 임시 테이블 선택

만약 OBJECT_ID (N& # 39, 트럼프db. # # # # 39 39 39 New_format_donor_temp& U& N&;;;) IS NOT NULL

New_format_donor_temp 드롭합니다 표.

일부 *

New_format_donor_temp 분할합니다

donor_employments 에서 여기서 DONOR_ID IN ( 1, 2 )

  • 테스트 New_format_donor_temp
  • SELECT *

    New_format_donor_temp 이르기까지.

  1. 업데이트 (update) 는 임시 테이블 참여됨 질의입니다.

업데이트 드 =, =, = de_new.TYPE_CD TYPE_CD de_new.STATUS_REASON_CD STATUS_REASON_CD de_new.STATUS_CD STATUS_CD 설정되었습니다 As de DONOR_EMPLOYMENTS 에서

New_format_donor_temp 대한 내부 조인을 de_new de_new.EMP_NO = 데 있다. EMP_NO

여기서 드. DONOR_ID IN ( 3, 4 )

경험이 별로 없는 내가 더 잘 알고 있는 외곽진입 SQL 알려주십시오.

Mysql 서버에 대한 쿼리합니다 위에 있다.

해설 (0)

아래에 있는 확인란 질의입니다.

  • 업데이트 타바레아 A a = B 에 내부 조인을 타바레브 name_a B.name_b validation_check 설정되었습니다 = if (start_dts &gt. end_dts, & # 39, & # 39, & # 39 VALID& # 39;;) *
해설 (0)