Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > จะ join 2 table นี้ยังไงอะครับ ข้อมูลมันถึงจะออกมาตรง.....



 

จะ join 2 table นี้ยังไงอะครับ ข้อมูลมันถึงจะออกมาตรง.....

 



Topic : 078379



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์




ตารางที่1

ตารางที่2

จะ join กันยังไงครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-05-14 14:00:31 By : addy_it View : 1965 Reply : 24
 

 

No. 1



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


ต้องดูก่อนว่าจะ loop ตารางหลักอันไหน
จากนั้นก็ใช้ left join โดยเอา idmember ของตารางหลัก = idmember ของตาราง join
แล้วก็อาจจะต้องมี group by idmember อีกที






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 14:13:15 By : mr.v
 


 

No. 2



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


คือ ตอนดึงข้อมูลมาโชว์ ให้ตารางที่ 1 เป็น ตารางหลัก ครับ ตารางที่1 มี 4 records ก็ใช้ โชว์ 4 records ครับ ส่วนตางรางที่ 2 ถ้า มี2 records ก็ให้ดึงมาตามนั้น แต่ต้องเป็นวันที่ ที่ตรงกันครับ ซึ่ง หนึ่งวัน ก็ จะมี ข้อมูลเพิ่ม ขึ้นมา ได้ 2 records ต่อ 1 idmember ทั้ง 2 ตาราง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 14:19:12 By : addy_it
 

 

No. 3



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


มันพอจะเป็นไปได้ไหมครับเนี้ยะ...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 14:55:19 By : addy_it
 


 

No. 4

Guest


Code
select * from tablaA a,tableB b where a.key=b.key ;

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 15:56:08 By : rootElement@kmutnb
 


 

No. 5



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าทำแบบ NO.4 มันจะได้แบบนี้
แสดงผล
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:00:01 By : addy_it
 


 

No. 6

Guest


ลองดู
select * from (table1 left join table2 on table1.idmember=table2.idmemberout)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:10:00 By : บังเอิญผ่านมาเห็น
 


 

No. 7

Guest


ต้องการแบบไหน ก็เอารูปมาลงอธิบายด้วยก็ดีนะครับ
มันจะตีความไม่ถูก แล้วมันไม่ตรงตามที่คุณต้องการอีก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:14:44 By : rootElement@kmutnb
 


 

No. 8



โพสกระทู้ ( 119 )
บทความ ( 1 )



สถานะออฟไลน์


ต้องการ รวม TB แล้ว มี Field อะไรบ้าง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:20:04 By : kamuro
 


 

No. 9



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


จากรูป ด้านบน จะเห็นว่า ตารางที่ 1 มีอยู่ 4 records ตาวงที่ 2 มีอยู่ 2 records เวลาที่ให้มันแสดงข้อมูล ก็ให้ตาราง ที่หนึ่งเป็นหลัก คือให้แสดง records ที่ 1-4 ส่วนตารางที่ 2 ก็เอา ฟิลล์ timeout มาใส่ ตารางที่1
แบบรูปนี้ครับ
แสดงผลแบบนี้ คือถ้า ตารางที่ 2 timeout เป็นค่าว่าง ก็แสดงออกมาแบบนี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:24:59 By : addy_it
 


 

No. 10



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


ตารางที่1
ตารางที่1
ตารางที่2
ตารางที่2
ให้ออกมาเป็นแบบนี้
แสดงข้อมูล
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:30:12 By : addy_it
 


 

No. 11

Guest


ตาม SQL ที่ให้ไปก็น่าจะทำได้นะครับ
คุณเอา field ไหนมา join กัน ?
มันควรจะเป็น idmember นะครับ เพราะอ้างอิงจาก รหัสสมาชิก ไม่ใช้ idin idout
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:35:10 By : rootElement@kmutnb
 


 

No. 12



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


ผมก็ใช้ idmember เป็นตัว join แต่ไม่ได้ครับ เพราะ ทั้ง 2 ตาราง จะมี idmember ไม่เท่ากัน มันก้จะออกมาเหมือน โพส No. 5 นั่นแหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:40:31 By : addy_it
 


 

No. 13

Guest


idmember ต่างกันผมก็ออกมาแบบนั้นสิครับ
คุณ ต้องการรู้ว่าสมาชิกคนไหนเข้าออกตอนไหนรึป่าว หรือต้องการอะไร ?

การ join คือ เอาข้อมูลที่เหมือนกัน ทั้ง 2 table มารวมกัน เพื่อให้ได้ข้อมูลที่มากขึ้น
โดยผ่าน key ที่เหมือนกัน ถ้าไม่มี key ที่เหมือนกัน จะเอาอะไรเป็นตัวชี้หละครับ

จากที่ดูข้อมูลใน 2 ตาราง น่าจะเป็นระบบที่เกี่ยวกับการเข้าออกของสมาชิกใช่ไหมครับ ?
จะใช้ข้อมูล idmember เป็นหลักใช่หรือไม่ ?
หรือใช้ idin idout เป็นหลัก ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:48:22 By : rootElement@kmutnb
 


 

No. 14



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


idmember ต่างกันผมก็ออกมาแบบนั้นสิครับ
คุณ ต้องการรู้ว่าสมาชิกคนไหนเข้าออกตอนไหนรึป่าว...................ใช่

การ join คือ เอาข้อมูลที่เหมือนกัน ทั้ง 2 table มารวมกัน เพื่อให้ได้ข้อมูลที่มากขึ้น
โดยผ่าน key ที่เหมือนกัน ถ้าไม่มี key ที่เหมือนกัน จะเอาอะไรเป็นตัวชี้หละครับ...........................อันนี้ผมเข้าใจ

จากที่ดูข้อมูลใน 2 ตาราง น่าจะเป็นระบบที่เกี่ยวกับการเข้าออกของสมาชิกใช่ไหมครับ ?....................ใช่
จะใช้ข้อมูล idmember เป็นหลักใช่หรือไม่ ?.......................ใช่
หรือใช้ idin idout เป็นหลัก ?.................ใช้เป็นหลักไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:53:42 By : addy_it
 


 

No. 15

Guest


ถ้าใช้ idmember เป็นหลัก ทั้ง 2 ตารางก็ต้องมี idmember ที่เหมือนกันครับ ถึง join กันได้

และตอนนี้ผมต้องกลับแล้ว ขอให้ท่านอื่นๆมา่ช่วยด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 16:57:32 By : rootElement@kmutnb
 


 

No. 16

Guest


ลองทำตาม คห.1 ยังครับ
ถ้าจะเอาแบบที่คุณต้องการ คือให้ดึงข้อมูลตารางที่ 1 ออกมาให้หมดก่อนนั้น left join น่าจะดีที่สุดนะ
แล้วก็เอา idmember มาเทียบกัน แล้วก็ต่อด้วย group by ที่ idmember น่ะ
ก็น่าจะเป็นอย่างนี้แหละ

select * from (table1 left join table2 on table1.idmember=table2.idmemberout) group by table1.idmember
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 17:14:48 By : บังเอิญผ่านมาเห็น
 


 

No. 17

Guest


อืม...ต้องการแบบใหนครับ
1 ใน1วัน สมาชิกคนนั้นเข้าออกกี่ครั้งเวลาใหนบ้าง
แบบนี้ก็พอแสดงได้น่ะ แต่มันอาจจะไม่ตรงซ่ะทีเดียว เพราะ ถ้าในการเก็บข้อมูล ถ้าในวันนั้น
เก็บเวลาเข้าไว้ 2 ครั้ง แต่เก็บเวลาออกไว้ครั้งเดียว มันก็จะแสดง เวลาเข้า 2 ครั้ง เวลาออก 2 ครั้งแต่เป็นเวลาเดียวกัน
2 ใน1วัน เข้าออกเวลาใหนคือ เวลาเข้าน้อยสุด และ เวลาออกมากสุด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-14 20:15:44 By : ผ่านมา
 


 

No. 18



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


1. มันจะใช้ group by ไม่ได้ครับ เพราะในตารางมี idmember เป็น หลายร้อย records มันก็จะรวมกันหมด
2. แล้วในแต่ละวัน 1 idmember มี ได้ไม่เกิน 2 records ทั้ง 2 ตาราง เพราะทำงานเป็น 8 ชั่วโมง ห้ามทำงานเกิน 18 ชั่วโมง
3.เวลาเข้างานของวัน เริ่มตั้งแต่ 00.00-08.30 , 08.30-16.30 ,16.30-00.00 ช่วงเวลาทำงานประมาณนี้ครับ
4.ถ้าทำงาน 2 ช่วงเวลา ต้อง ตอกบัตรเข้า ออก
5. คืออยากดูเวลาเข้าออกของแต่ละคน ในแต่วัน สำหรับคนที่ไม่ตอกบัตรออก ก็ให้เป็นว่างไว้ คือ ตอกเข้าหนึ่งครั้ง ก็ต้องตอกออกหนึ่งครั้ง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 08:52:45 By : addy_it
 


 

No. 19



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


ติดแหงก....
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 15:55:45 By : addy_it
 


 

No. 20

Guest


5. คืออยากดูเวลาเข้าออกของแต่ละคน ในแต่วัน สำหรับคนที่ไม่ตอกบัตรออก ก็ให้เป็นว่างไว้ คือ ตอกเข้าหนึ่งครั้ง ก็ต้องตอกออกหนึ่งครั้ง
ตอบความคิดเห็นที่ : 18 เขียนโดย : addy_it เมื่อวันที่ 2012-05-15 08:52:45
รายละเอียดของการตอบ ::
ตามที่ผมได้ตอบไว้เมื่อวาน เพียงพอแล้วนะครับ

ถ้าเช่นนั้น ก็ให้ระบุไปว่าจะเอาข้อมูลอะไรออกมาบ้างลงไปใน SQL

Code (PHP)
select  a.idmember , a.date ,a.time ,b.time   from tableA a , tableB b where a.idmember=b.idmemberout


ถ้าข้อมูลออกมาซ้ำให้ใช้ distinct

Code (PHP)
select distinct  a.idmember , a.date ,a.time ,b.time   from tableA a , tableB b where a.idmember=b.idmemberout


*** ถ้าข้อมูลใน Database ของคุณถูกต้อง ก็ประมาณนี้หละ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 16:09:04 By : rootElement@kmutnb
 


 

No. 21



โพสกระทู้ ( 23 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้า query ครั้งเดียว ก็ประมาณนี้ แต่จะข้ามวันไม่ได้

select a.*,b.timeout
from a left outer join b
on a.idmember=b.idmemberout
and a.date=b.dateout
group by a.idmember,a.date ;

แต่ถ้าออกงานข้ามวัน แนะนำให้เปลี่ยนรูปแบบการเก็บข้อมูล เพื่อง่ายในการ query

หรือ ใช้คำสั่ง [font=Verdana]create temporary table[/font] ช่วยในการ query ซึ่งจะต้อง query [font=Verdana]มากกว่า 1 ครั้ง[/font]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 16:47:48 By : tannabor
 


 

No. 22



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


เดี๋ยว พรุ่งนี้ ผมถึงจะลอง ขอบคุณ ทุกท่านมากครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 16:49:08 By : addy_it
 


 

No. 23

Guest


เห่อๆ....ลองบ้าง

SELECT
tbin.idmember,
tbin.date,
tbin.time,
tbout.dateout,
tbout.timeout
FROM
tbin
left JOIN tbout ON tbin.idmember = tbout.idmemberout AND tbin.date = tbout.dateout and tbout.timeout>tbin.time
group by tbin.date,tbin.time
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 21:50:27 By : ผ่านมา
 


 

No. 24



โพสกระทู้ ( 330 )
บทความ ( 0 )



สถานะออฟไลน์


นอนไม่หลับแวะมาดู อยากให้ถึงพรุ่งนี้เร็ว ๆ มีอีกไหมครับ ท่าน อื่น แสดงความเห็นหน่อยครับ ช่วยคนที่ไม่รู้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-15 22:20:24 By : addy_it
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะ join 2 table นี้ยังไงอะครับ ข้อมูลมันถึงจะออกมาตรง.....
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่