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

Registered : 107,296

HOME > PHP > PHP Forum > สอบถาม QUERY ของ CodeIgniter แบบ JOIN หน่อยครับ อยากได้ผลธ์แบบนี้





 

สอบถาม QUERY ของ CodeIgniter แบบ JOIN หน่อยครับ อยากได้ผลธ์แบบนี้

 



Topic : 132364



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



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




โค๊ด
return $this->kpk_mysqli
->select('rdt.rDT_plucode')
->select('prod.prod_prodcode,prod.prod_prodname,prod.prod_unit')
->select('sum(rDT_amount) as sum_amount')
->from('tb_whs_receiveDT as rdt')
->where('rdt.rDT_reference', '1150')
->where('prod.prod_supcode', 'A10011')
->join('tb_whs_product as prod', 'prod.prod_plucode = rdt.rDT_plucode','left')
->order_by('rdt.rDT_id','ASC')
->group_by('rdt.rDT_plucode')
->get()->result();




ผลลัพธ์ ที่ออกมา
Array
(
[0] => stdClass Object
(
[rDT_plucode] => 2900006914746
[prod_prodcode] => HK3J9GRKS1
[prod_prodname] => T-SHIRT
[prod_unit] => ตัว
[sum_amount] => 3
)

[1] => stdClass Object
(
[rDT_plucode] => 2900006965205
[prod_prodcode] => HK508GYKY0
[prod_prodname] => T-SHIRT
[prod_unit] => ตัว
[sum_amount] => 2
)
)


คำถามคือแบบนี้ครับ

ใน table tb_whs_receiveDT จริงๆแล้วมี rDT_plucode อยู่ 4 row

ซึ่งอีก 2 row มันไม่ออกมาแสดงด้วยเพราะว่า ตอน join กันระหว่าง

prod.prod_plucode = rdt.rDT_plucode ซึ่งใน tb_whs_product

มันไม่มีไอเท็ม 2 ตัวนั้นอยู่

ผมจะต้องคิวรี่อย่างไรให้ ไอเท็มอีก 2 row ที่ไม่มีอยู่ใน tb_whs_product

แสดงออกมาในผลลัพธ์ด้วยครับ



แต่หากผม ตัด ->where('prod.prod_supcode', 'A10011') มันก็ทำงานได้นะครับ

มันจะออกมาเปน NULL แต่มันใช้เวลา QUERY นานมาก ผมเลยจำเป็นต้อง WHERE ส่วนนี้เพื่อให้

มัน QUERY ได้เร็วขึ้น



Tag : PHP, CodeIgniter







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-10-18 12:57:24 By : zcoolmax View : 138 Reply : 4
 

 

No. 1



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



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


เปลี่ยน left join เป็น right join

คุณต้องรู้ความต้องการของคุณ อะไรสำคัญ ใช้อันนั้นเป็นหลัก






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-18 13:09:44 By : Chaidhanan
 


 

No. 2



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



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


right ไม่ได้ครับ เพราะผมต้องการให้ tb_whs_receiveDT เป็นหลัก

ซึ่งถ้าผมไม่ where('prod.prod_supcode', 'A10011') ผลลัพธ์มันก็ออกมาอย่างที่ต้องการนะครับ

แต่จะคิวรี่นานมาd เพราะข้อมู,โปรดักหลายล้าน row มเลบต้อง where เพิ่มเข้าไปเพื่อตัดโปรดักที่ไม่ต้องการออก

เลยจะทำให้การทำงานเร็วขึ้น ซึ่งเมื่อ where เข้าไป ข้อมูล หลักที่ผมมีมันไม่ได้อยู่ในเงื่อนไข where มันก็เลยไม่มีนะครับ

จะทำอย่างไรดีให้ where แล้วข้อมูลหลักยังคงอยู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-18 13:57:25 By : zcoolmax
 

 

No. 3



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



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


สร้าง index เพิ่มเติม ตามสิ่งที่ต้องการค้นหา

เอา structure ของ ตารางมาด้วยก็จะดีนะครับ


ประวัติการแก้ไข
2018-10-18 14:07:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-18 14:05:42 By : Chaidhanan
 


 

No. 4



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



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


ผลลัพธ์ออกมาเวิคมากเลยครับ

ทำ Index ตามที่ อาจารย์บอก

จาก 6 วินาทีเหลือแค่ 0.300 วินาที

ขอบคุณมากๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-10-18 21:32:58 By : zcoolmax
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม QUERY ของ CodeIgniter แบบ JOIN หน่อยครับ อยากได้ผลธ์แบบนี้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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