ต้องการใช้คำสั่งค้นหาข้อมูลจาก 2 ตาราง
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 398   11
URL.หัวข้อ / URL
ต้องการใช้คำสั่งค้นหาข้อมูลจาก 2 ตาราง

ผมต้องการค้นหารายชื่อพนักงาน จาก 2 บริษัท  
โดย บริษัท ก สร้างไว้ Table 1 
      บริษัท ข สร้างไว้ Table 2 
ซึ่งเวลากรอกป้อนข้อมูลก็ ป้อนกันคนละ Form 
เพราะว่า 2 บริษัท ไม่ได้อยู่ที่เครื่องเดียวกัน อยู่กันคนละที่กัน และเป็นบริษัทเครือข่ายกัน 
เพราะฉะนั้น เวลา Import ข้อมูล มันก็ไม่สามารถรวมข้อมูลกันได้ เพราะอยู่คนละ Table 
 
ถ้าผมต้องการค้นหาข้อมูลจาก Form ใด Form หนึ่ง แต่ให้มันหาทั้ง 2 Table จะทำได้ไหมครับ 
หรือมีวิธีการรวม Table ใน Query หรือไม่ 
ขอบคุณครับ

11 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R01255
ตามหลักการของการออกแบบระบบฐานข้อมูล ถ้าทั้ง 2 ตารางมีฟีลด์เหมือนกัน ควรจะต้องเก็บไว้เป็นตารางเดียวกัน แล้วเพิ่มเข้าไปอีกฟีลด์หนึ่งเพื่อระบุว่าเป็นบริษัทไหน หรือจะใช้ ID ของพนักงานเป็นตัวช่วยแบ่งก็ได้ครับ เช่น ABC-0001 อยู่บริษัทแรก ส่วน XYZ-0001 อยู่บริษัทที่ 2 จะทำให้ง่ายในการจัดการภายหลังครับ การรวมตาราง 2 ตารางที่มีฟีลด์เหมือนกัน ให้ลองใช้ Union Query ดูครับ ในเมื่อท้ายที่สุดแล้วทั้ง 2 ตารางก็เข้ามาอยู่ด้วยกัน ให้รวมกันดีกว่าครับ
2 @R01256
ถ้ามันเป็นไปตามหลักการผมก็อยากทำอย่างนั้นแหละครับ แต่ติดปัญหาต้องที่ว่า เรามีการป้อนข้อมูล 2 ที่ ซึ่ง ไม่สามารถเชื่อมตารางกันได้ด้วย เพราะอยู่คนละจังหวัดกันเลย ก็เลยตั้งทำวิธีที่ผมถามไป ซึ่งจะมีปัญหามากครับ
3 @R01258
วิธีการใช้ Union Query ทำอย่างไรครับ
4 @R01263
ให้คลิกเพื่อสร้าง Query ใหม่ โดยไม่ต้องเลือกตารางใดๆ จากนั้นให้ไปที่เมนู Query>SQL Specific>Union แล้วพิมพ์ SQL Statement ลงไปคล้ายๆ นี้ SELECT tblStaff.* FROM tblStaff UNION ALL Select tblStaff2.* From tblStaff2; โดยต้องเปลี่ยนชื่อตารางทั้ง 2 ให้ตรงกับตารางเป้าหมายครับ ลองดูผลลัพธ์ว่าได้ตามที่ต้องการหรือไม่ ลองดูครับ
5 @R01264
ได้แล้วครับ ขอบคุณมากครับ แต่ผมมีคำถามเพิ่มเติม ถ้าในกรณีทั้งสองตาราง มีข้อมูลเป็นจำนวนมาก จะทำให้ข้อมูลผิดเพี้ยนหรือป่าวครับ เช่น ตารางทั้ง 2 มีข้อมูลอย่างละ 5 หมื่น
6 @R01267
ไม่เพี้ยนครับ แต่จะช้าแค่นั้นเอง ลองดูครับ
7 @R01274
อาจารย์ค่ะ ขอรบกวน ถ้าหากมีถึง 3 ตารางละค่ะ
8 @R01275
ก็ทำต่อไปเรื่อยๆ ครับ แต่ไม่ควรจะทำนะครับ SELECT tblStaff.* FROM tblStaff UNION ALL Select tblStaff2.* From tblStaff2 Union All Select tblStaff3.* From tblStaff3; ทำให้มันอยู่ในตารางเดียวจะดีที่สุด
9 @R01286
ขอบคุณมากค่ะ
10 @R01304
วันนี้ที่ http://www.utteraccess.com/forums/showflat.php?Cat=&Board=access_2000&Number=160047&page=0&view=collapsed&sb=5&o=7&fpart=&vc=1&PHPSESSID= ถามไว้ด้วยเงื่อนไขคล้ายๆ กัน แต่เขาต้องการใช้ Where clause ด้วย ผมแนะนำเขาไปดังนี้ SELECT Employees.* FROM Employees Where Format(Employees.HireDate,"yyyymm") =199310 UNION ALL Select Employees2.* From Employees2 Where Format(Employees2.HireDate,"yyyymm") =199310;
11 @R01305
ลองดูตัวอย่างของ Microsoft ที่ http://support.microsoft.com/default.aspx?scid=kb;en-us;209062 ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0508s