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 > Inner Join แล้วเกิดปัญหา ไม่แสดงข้อมูลจาก Database



 

Inner Join แล้วเกิดปัญหา ไม่แสดงข้อมูลจาก Database

 



Topic : 135779



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



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




สอบถามการเขียนแสดงข้อมูลจาก Database หน่อยครับ คือผมมีปัญหาในการแสดงข้อมูลจากฐานข้อมูลอ้ะครับ โค้ดประมาณนี้ที่เกิดปัญหา

อันนี้ SQL ก่อนเกิดปัญหาแสดงผลตามปกติ Inner Join 2 ตัว
Code (PHP)
$SQL_BBSCommentData = $config->query("SELECT * FROM (( tbl_bbscomment INNER JOIN tbl_member ON tbl_member.member_id = tbl_bbscomment.member_id ) INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbsicon_id)");


แต่พอ Inner Join มาอีกตัวนึง ไม่แสดงผลเลยครับ อันนี้ SQL ตอนเกิดปัญหา Inner Join 3 ตัว
Code (PHP)
$SQL_BBSCommentData = $config->query("SELECT * FROM ((( tbl_bbscomment INNER JOIN tbl_member ON tbl_member.member_id = tbl_bbscomment.member_id ) INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbsicon_id ) INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbscolor_id )");




Tag : PHP









ประวัติการแก้ไข
2020-12-17 19:08:43
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2020-12-17 18:58:52 By : smile1 View : 1930 Reply : 11
 

 
ดู join four tables example
https://www.mysqltutorial.org/mysql-inner-join.aspx/


ที่ทำมากระบวนสุดท้ายมัน join ส่วนที่ไม่มีร่วมกัน (ถูกคัดจากกระบวนก่อนหน้า) จึงไม่แสดงผล






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 19:32:47 By : ล่องหน
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : ล่องหน เมื่อวันที่ 2020-12-17 19:32:47
รายละเอียดของการตอบ ::
ดู join four tables example
https://www.mysqltutorial.org/mysql-inner-join.aspx/


ที่ทำมากระบวนสุดท้ายมัน join ส่วนที่ไม่มีร่วมกัน (ถูกคัดจากกระบวนก่อนหน้า) จึงไม่แสดงผล


มีข้อมูลที่มีร่วมกันครับ แต่ก็ไม่แสดง


ประวัติการแก้ไข
2020-12-17 19:35:47
2020-12-17 19:35:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 19:35:19 By : smile1
 

 
อย่าคิดเองสิ ต้องพิสูจน์

Code
SELECT * FROM ((( tbl_bbscomment INNER JOIN tbl_member ON tbl_member.member_id = tbl_bbscomment.member_id ) INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbsicon_id ) INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbscolor_id )



สังเกตเขียวแดง มีอะไรที่ต่างกันบ้าง ถ้าหาเจอบอกผมด้วย...อาจดูไม่ครบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 19:57:30 By : ล่องหน
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : ล่องหน เมื่อวันที่ 2020-12-17 19:57:30
รายละเอียดของการตอบ ::
สังเกตเขียวแดง มีอะไรที่ต่างกันบ้าง ถ้าหาเจอบอกผมด้วย...อาจดูไม่ครบ


ตรงสีแดง
INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbsicon_id

ถ้าเปลี่ยนจาก bbsicon_id เป็น bbscolor_id ก็ขึ้นข้อมูลปกติ แต่เป็นของอีกอัน เหมือนมันให้ใส่อย่างใดอย่างหนึ่ง ไม่รู้มึนหมดแล้วครับ :(
อันนี้ tbl_item ครับ
ไฟล์ tbl_item

อันนี้ tbl_member ครับ
ไฟล์ tbl_member


ประวัติการแก้ไข
2020-12-17 20:23:32
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 20:09:03 By : smile1
 


 
ที่ต้องการสื่อคือ จำนวนครั้งที่ join แบบทั่วไป จะได้

สูตร
่Njoin = Ntable - 1



ถ้าต้องการแบบพิศดาร (รวม table เดิม) ต้องกำหนด table name ด้วย แล้วอ้างอิงมา join อีกที

(แบบไม่ต้องคิดมาก ศึกษาตามลิงค์ที่ผมให้ไป อาจทำให้ชีวิตง่ายขึ้น)




ถ้าอยากให้เหล่าเซียนผู้อุทิศตน เขียนให้เลย...อย่างน้อยต้องมี ตารางทั้งหมดที่จะ join

และตัวอย่างผลลัพธ์ที่ต้องการ ท่านๆ ปู่ ตา น้า ลุง ทั้งหลาย จึงจะช่วยได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 20:28:08 By : ล่องหน
 


 

No. 6



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


Code (SQL)
SELECT * FROM (
	(
		( 
			tbl_bbscomment 
			INNER JOIN tbl_member ON tbl_member.member_id = tbl_bbscomment.member_id 
		) 
		INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbsicon_id  ###### ซ้ำ
	) 
	INNER JOIN tbl_item ON tbl_item.item_uid = tbl_member.bbscolor_id   ####### ซ้ำ
)


Code (SQL)
SELECT * 
FROM tbl_bbscomment as bb 
INNER JOIN tbl_member mb 
	ON mb.member_id = bb.member_id 
INNER JOIN tbl_item im 
	ON im.item_uid = mb.bbsicon_id and im.item_uid = mb.bbscolor_id


ของ จขกท มันมีตาราง ซ้ำกัน 2 ตาราง มัน ก็จะอ้างอิง ผิดผลาด สร้าง alias เพื่อกำหนด การอ้างอิง
แต่ไม่จำเป็น ใส่ and เข้าไปแทน

โค๊ดเวลาสั่ง คิวรี่ ก็ควรตรวจสอบด้วยว่า มันคิวรี่ สำเร็จแต่ไม่พบ result หรือ คิวรี่ผิดผลาดมีเออเร่อร์


ประวัติการแก้ไข
2020-12-17 20:45:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 20:40:53 By : Chaidhanan
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-12-17 20:40:53
รายละเอียดของการตอบ ::
... ใส่ความคิดเห็นตรงนี้....... ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-12-17 20:40:53
รายละเอียดของการตอบ ::
ก็ยังไม่ไดอะครับ มันแสดงได้แค่ค่าใดค่าหนึ่งระหว่าง bbsicon_id กับ bbscolor_id


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 21:28:38 By : smile1
 


 
มีกี่ตาราง ที่เห็นโพสต์มามีแค่สอง แล้วที่เหลืออยู่ไหน
ต้องการแสดงฟิลด์ไหน จากตารางใดบ้าง ต้องระบุข้อมูลให้ครบ

ที่ไม่ได้แสดงว่าคุณเล่นแบบกอปวางโดยไม่ประยุกต์ก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-17 22:26:36 By : ล่องหน
 


 

No. 9



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 7 เขียนโดย : smile1 เมื่อวันที่ 2020-12-17 21:28:38
รายละเอียดของการตอบ ::
ถ้ามันไม่ได้ มันก็แสดงว่า 2 field bbsicon_id กับ bbscolor_id นั้น ไม่มีสักเรคคอร์ดที่เหมือนกันเลย


ลองทดสอบ ตาราง member ก่อนเลยว่าข้อมูลมัน เหมือนกัน มีหรือเปล่า

select * from tbl_member where bbsicon_id = bbscolor_id
ดูสิว่า 2 field นี้มีเหมือนกัน ไหม ถ้ามันไม่เหมือนก็ ใช้ inner ไม่ได้ มันควรจะใช้ left join หรือ right join หรือเปล่า


Code (SQL)
SELECT bb.*,mb.*
  ,im1.fldname as xxx, im2.fldname as yyy #บันทัดนี้ field มีชื่อซ้ำกัน ข้อมูลต่างกันต้องกำหนด alias name
# ไม่อย่างนั้นข้อมูลมันจะหายได้ ถ้าเรียกใช้งานแบบ assoc หรือ object
FROM (
  tbl_bbscomment as bb 
  INNER JOIN tbl_member mb ON mb.member_id = bb.member_id 
) 
left JOIN tbl_item im1 ON im1.item_uid = mb.bbsicon_id
left JOIN tbl_item im2 ON im2.item_uid = mb.bbscolor_id



ประวัติการแก้ไข
2020-12-18 05:51:12
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-18 05:41:35 By : Chaidhanan
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : Chaidhanan เมื่อวันที่ 2020-12-18 05:41:35
รายละเอียดของการตอบ ::
ลองทดสอบ ตาราง member ก่อนเลยว่าข้อมูลมัน เหมือนกัน มีหรือเปล่า

select * from tbl_member where bbsicon_id = bbscolor_id
ดูสิว่า 2 field นี้มีเหมือนกัน ไหม ถ้ามันไม่เหมือนก็ ใช้ inner ไม่ได้ มันควรจะใช้ left join หรือ right join หรือเปล่า



ได้แล้วครับ มันแสดงข้อมูลหมดแล้ว ขอบคุณมาก ๆ เลยครับ :)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-21 14:18:09 By : smile1
 


 

No. 11



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



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


ตอบความคิดเห็นที่ : 10 เขียนโดย : smile1 เมื่อวันที่ 2020-12-21 14:18:09
รายละเอียดของการตอบ ::
แสดงวิธีทำ ให้คนอื่นเห็นด้วยสิครับ มีคำถามแต่ไม่เฉลยคำตอบ เหมือนนั่งดูหม้อหุงข้าวที่ไม่มีวันสุก 5555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-12-22 14:08:47 By : Chaidhanan
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Inner Join แล้วเกิดปัญหา ไม่แสดงข้อมูลจาก Database
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่