กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
459 11
URL.หัวข้อ /
URL
ต้องการใช้คำสั่งค้นหาข้อมูลจาก 2 ตาราง
ผมต้องการค้นหารายชื่อพนักงาน จาก 2 บริษัท
โดย บริษัท ก สร้างไว้ Table 1
บริษัท ข สร้างไว้ Table 2
ซึ่งเวลากรอกป้อนข้อมูลก็ ป้อนกันคนละ Form
เพราะว่า 2 บริษัท ไม่ได้อยู่ที่เครื่องเดียวกัน อยู่กันคนละที่กัน และเป็นบริษัทเครือข่ายกัน
เพราะฉะนั้น เวลา Import ข้อมูล มันก็ไม่สามารถรวมข้อมูลกันได้ เพราะอยู่คนละ Table
ถ้าผมต้องการค้นหาข้อมูลจาก Form ใด Form หนึ่ง แต่ให้มันหาทั้ง 2 Table จะทำได้ไหมครับ
หรือมีวิธีการรวม Table ใน Query หรือไม่
ขอบคุณครับ
โดย บริษัท ก สร้างไว้ 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 ครับ
Time: 0.1241s