|  | 
	                
  
    | 
	 
        จำทำอย่างไรให้ query ดึงข้อมูลจากฐานข้อมูลตาราง A,B,C ไปใส่ฐานข้อมูลตาราง D ขอคำแนะนำทีครับ     |  
    |  |  
 
	
		|  |  |  |  |  
		|  |  | 
          
            | สวัสดีครับ พอดีอยากจะขอคำแนะนำครับ ผม query ดึงข้อมูลจากฐานข้อมูลตาราง A,B,C ไปใส่ฐานข้อมูลตาราง D
 โดย กำหนดให้เงื่อน
 SET @H_CODE = '00000';
 SET @BEGIN_DATE = '20171001';
 SET @END_DATE = '20180331';
 
 ให้ @H_CODE เป็น PK ครับซึ่ง ผมมี @H_CODE ตั้งหมดหลายร้อยตัว
 query ที่นำมารันดึงข้อมูลใส่มันดึงข้อมูลได้ทีล่ะตัว
 อยากจะขอคำแนะนำว่าจะต้อง ปรับ query ยังไงให้สามารถใส่ @H_CODE ได้ที่ล่ะหลายๆตัวโดยที่ไม่ต้องมารัน @H_CODE ทีล่ะตัวเพื่อเก็บข้อมูลลงตางราง D ครับ
 เช่น @H_CODE(00000,00001,00002,...) ครับ
 
 อันนี้ query ส่วนหนึ่งครับ
 Code (SQL)
 
 
SET @H_CODE = '00000';
SET @BEGIN_DATE = '20171001';
SET @END_DATE = '20180331';
DELETE FROM random_audit_opd WHERE HCODE = @H_CODE;
INSERT IGNORE INTO random_audit_opd (HCODE,PID,HN,DATE_SERV,DCODE)
SELECT * FROM (
(SELECT
service.HCODE,
service.PID,
service.HN,
service.DATE_SERV,
dnosis_op.DCODE
FROM
service
JOIN dnosis_op
ON service.HCODE = dnosis_op.HCODE
AND service.PID = dnosis_op.PID
AND service.SEQ = dnosis_opd.SEQ
WHERE
service.HCODE = @H_CODE
AND service.DATE_SERV BETWEEN @BEGIN_DATE AND @END_DATE
AND dnosis_op.DIAGCODE BETWEEN 'a' AND 'b99'
ORDER BY RAND()
LIMIT 3)
UNION
(SELECT
service.HCODE,
service.PID,
service.HN,
service.DATE_SERV,
dnosis_op.DCODE
FROM
service
JOIN dnosis_op
ON service.HCODE = dnosis_op.HCODE
AND service.PID = dnosis_opd.PID
AND service.SEQ = dnosis_op.SEQ
WHERE
service.HCODE = @H_CODE
AND service.DATE_SERV BETWEEN @BEGIN_DATE AND @END_DATE
AND dnosis_opd.DCODE BETWEEN 'd50' AND 'd89'
ORDER BY RAND()
LIMIT 2)
UNION
(SELECT
service.HCODE,
service.PID,
service.HN,
service.DATE_SERV,
dnosis_op.DCODE
FROM
service
JOIN dnosis_opd
ON service.HCODE = dnosis_op.HCODE
AND service.PID = dnosis_op.PID
AND service.SEQ = dnosis_op.SEQ
WHERE
service.HCODE = @H_CODE
AND service.DATE_SERV BETWEEN @BEGIN_DATE AND @END_DATE
AND dnosis_op.DCODE LIKE 'e%'
ORDER BY RAND()
LIMIT 2)
UNION
(SELECT
service.HCODE,
service.PID,
service.HN,
service.DATE_SERV,
dnosis_op.DCODE
FROM
service
JOIN dnosis_op
ON service.HCODE = dnosis_op.HCODE
AND service.PID = dnosis_op.PID
AND service.SEQ = dnosis_op.SEQ
WHERE
service.HCODE = @H_CODE
AND service.DATE_SERV BETWEEN @BEGIN_DATE AND @END_DATE
AND dnosis_op.DCODE LIKE 'i%'
ORDER BY RAND()
LIMIT 2)
 
 ขอบคุณครับ
 
 
 
 Tag : PHP, MySQL
 
 
 |  
            | 
 ประวัติการแก้ไข
 2018-04-10 16:08:27
 2018-04-10 16:09:19
 2018-04-17 09:38:40
 |  
            | 
              
                |  |  |  |  
                |  | 
                    
                      | Date :
                          2018-04-10 16:07:51 | By :
                          krisz123 | View :
                          839 | Reply :
                          3 |  |  |  
                |  |  |  |  |  
            |  |  
		            |  |  
		|  |  |  |  |  
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | WHERE HCODE in (@H_CODE); 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2018-04-10 19:10:08 | By :
                            Chaidhanan |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | WHERE HCODE in (@H_CODE); 
 อันนี้ผมต้องไปใส่ตรงไหนครับพี่
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2018-04-17 09:23:55 | By :
                            krisz123 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ตัวอย่าง บันทัด 01 กับ 05 01 SET @H_CODE = '1,2,3,4,5';
 05 DELETE FROM random_audit_opd WHERE HCODE in (@H_CODE);
 
 ส่วนที่เหลือต้องประยุกต์เอาตามความต้องการ เมื่อรู้ว่า HCODE เป็น ชุดตัวเลข (array)
 result ที่ได้ก็จะมี หลายเรคคอร์ด
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2018-04-17 11:10:43 | By :
                            Chaidhanan |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |