หัวข้อ: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 10:15:54 (อาจจะเส้นผมบังภูเขาอ่ะนะ แต่พยายามอยู่พักนึงแระ ถามผู้รู้ดีกว่า)
เช่น ใน ตาราง Customer มีข้อมูล c_order_1, c_order_2, c_order_3 แล้วเอารหัสสินค้าใน c_order_1, c_order_2, c_order_3 ไปเรียกชื่อสินค้าในตาราง Product จะ Join Table แบบไหนครับ ลองแบบชื่อเดียวอ่ะออก โค๊ด: SELECT * FROM customer JOIN product ON customer.c_order_1 = product.name หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 10:19:50 (อาจจะเส้นผมบังภูเขาอ่ะนะ แต่พยายามอยู่พักนึงแระ ถามผู้รู้ดีกว่า) เช่น ใน ตาราง Customer มีข้อมูล c_order_1, c_order_2, c_order_3 แล้วเอารหัสสินค้าใน c_order_1, c_order_2, c_order_3 ไปเรียกชื่อสินค้าในตาราง Product จะ Join Table แบบไหนครับ ลองแบบชื่อเดียวอ่ะออก โค๊ด: SELECT * FROM customer JOIN product ON customer.c_order_1 = product.name งง คำถามนิดๆ แต่อยากตอบ โค๊ด: SELECT * FROM customer,product WHERE customer.c_order_1 = product.name AND customer.c_order_2 = product.name AND customer.c_order_3 = product.name ได้รึเปล่าไม่รู้นะ มั่วมาแหลกลาน หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: ioff ที่ 26 พฤศจิกายน 2009, 10:22:44 select * from customer inner join product on customer.code = product.code
แล้วก็ วนรอบแบบไหนก็ได้ให้ครบทุกเรคคอร์ด ลองดูนะค่ะ :wanwan020: หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 10:25:54 main idea คือ เอาข้อมูลหลายข้อมูลจากตาราง ลูกค้า ไปเรียกชื่อในตารางผลิตภัณฑ์
คือข้อมูลจากตารางลูกค้าจะมาจากหลาย field คือ c_order_1, c_order_2, c_order_3 แต่ไปเรียกเอาชื่อจากตารางผลิตภัณฑ์อ่ะครับ สมมติดึง c_order_1 ไปเรียกชื่อผลิตภัณฑ์ เพียงข้อมูลเดียวอ่ะชื่อออก แต่พอเขียนหลายข้อมูล เช่น c_order_1, c_order_2, c_order_3 มัน error เลยไม่รู้จะเขียนยังไงดี หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: icez ที่ 26 พฤศจิกายน 2009, 10:34:05 SELECT * FROM customer c LEFT JOIN product p1 ON c.c_order_1 = p1.name LEFT JOIN product p2 ON c.c_order_2 = p2.name LEFT JOIN product p3 ON c.c_order_3 = p3.name
หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 10:44:21 SELECT * FROM customer c LEFT JOIN product p1 ON c.c_order_1 = p1.name LEFT JOIN product p2 ON c.c_order_2 = p2.name LEFT JOIN product p3 ON c.c_order_3 = p3.name แล้วจะเรียกข้อมูลยังไงครับเนี่ย $res = mysql_fetch_array($result) $res['name']; <<< อันนี้จะเรียกกี่อันมันก้อจะออกแต่ชื่อสุดท้าย $res['p1.name'] อันนี้ไม่ออก หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 11:07:52 main idea คือ เอาข้อมูลหลายข้อมูลจากตาราง ลูกค้า ไปเรียกชื่อในตารางผลิตภัณฑ์ คือข้อมูลจากตารางลูกค้าจะมาจากหลาย field คือ c_order_1, c_order_2, c_order_3 แต่ไปเรียกเอาชื่อจากตารางผลิตภัณฑ์อ่ะครับ สมมติดึง c_order_1 ไปเรียกชื่อผลิตภัณฑ์ เพียงข้อมูลเดียวอ่ะชื่อออก แต่พอเขียนหลายข้อมูล เช่น c_order_1, c_order_2, c_order_3 มัน error เลยไม่รู้จะเขียนยังไงดี อยากช่วยนะครับแต่ งง แหลกลาน 1. เอาข้อมูลหลายข้อมูลจากตาราง ลูกค้า ไปเรียกชื่อในตารางผลิตภัณฑ์ 2. ข้อมูลจากตารางลูกค้าจะมาจากหลาย field คือ c_order_1, c_order_2, c_order_3 ขอมูลประมาณนี้เปล่า customer c_order_1, c_order_2, c_order_3 1 1 2 2 1 3 product id ,Name 1 เครื่องชั่ง 2 รถลาก 3 ม้าเหล็ก 4 หมูสนาม โค๊ด: SELECT หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 11:10:57 อยากช่วยนะครับแต่ งง แหลกลาน 1. เอาข้อมูลหลายข้อมูลจากตาราง ลูกค้า ไปเรียกชื่อในตารางผลิตภัณฑ์ 2. ข้อมูลจากตารางลูกค้าจะมาจากหลาย field คือ c_order_1, c_order_2, c_order_3 ขอมูลประมาณนี้เปล่า customer c_order_1, c_order_2, c_order_3 1 1 2 2 1 3 product id ,Name 1 เครื่องชั่ง 2 รถลาก 3 ม้าเหล็ก 4 หมูสนาม โค๊ด: SELECT เข้าใจถูกต้องแล้วครับ แล้วจะ echo ข้อมูล ในการ fetch 1 ครั้งว่ายังไงครับเนี่ย หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 11:42:07 อยากช่วยนะครับแต่ งง แหลกลาน 1. เอาข้อมูลหลายข้อมูลจากตาราง ลูกค้า ไปเรียกชื่อในตารางผลิตภัณฑ์ 2. ข้อมูลจากตารางลูกค้าจะมาจากหลาย field คือ c_order_1, c_order_2, c_order_3 ขอมูลประมาณนี้เปล่า customer c_order_1, c_order_2, c_order_3 1 1 2 2 1 3 product id ,Name 1 เครื่องชั่ง 2 รถลาก 3 ม้าเหล็ก 4 หมูสนาม โค๊ด: SELECT เข้าใจถูกต้องแล้วครับ แล้วจะ echo ข้อมูล ในการ fetch 1 ครั้งว่ายังไงครับเนี่ย $rs=mysql_fetch_assoc($query); $rs["name1"];//p1.name as name1, $rs["name2"];//p2.name as name2, $rs["name3"];//p3.name as name3, หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 11:48:55 ยังไม่ได้เลยอ่ะครับ
:wanwan031: หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 11:55:00 ยังไม่ได้เลยอ่ะครับ แล้วต้องการให้แสดงผลออกมาแบบไหนละคราบ:wanwan031: หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 12:10:15 ยังไม่ได้เลยอ่ะครับ แล้วต้องการให้แสดงผลออกมาแบบไหนละคราบ:wanwan031: คือมันไม่แสดงผลเลยครับ กำลังดูอยู่ว่าผิดตรงไหน หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 12:42:42 :wanwan023:
ยังไม่ได้เลยอ่ะครับ แล้วต้องการให้แสดงผลออกมาแบบไหนละคราบ:wanwan031: คือมันไม่แสดงผลเลยครับ กำลังดูอยู่ว่าผิดตรงไหน หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: Kizmo ที่ 26 พฤศจิกายน 2009, 14:01:16 โอยยย ไม่ได้จริง ๆ อย่างเครียด
แบบว่าผมต้องการให้มันแสดงผลแบบนี้ครับ ดึงค่าจาก field c_order_1, c_order_2, c_order_3 (ใน 1 record) มาเทียบ id กับ product เพื่อเรียก product name โดย Where จาก id customer แล้ว echo ออกมา เช่น table customer id c_order_1 c_order_2 c_order_3 C001 P001 P002 P003 table product id name P001 มะม่วง P002 มะนาว P003 มะพร้าว เสร็จแล้วให้ fetch โดย where จาก id customer แล้วดึงค่า c_order ทั้ง 3 field มาเทียบชื่อแล้วแสดงผล มะม่วง มะนาว มะพร้าว หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: @@@ ที่ 26 พฤศจิกายน 2009, 14:18:40 โอยยย ไม่ได้จริง ๆ อย่างเครียด แสดงข้อมูลเฉพาะครั้งแรกครั้งเดี่ยวแบบว่าผมต้องการให้มันแสดงผลแบบนี้ครับ ดึงค่าจาก field c_order_1, c_order_2, c_order_3 (ใน 1 record) มาเทียบ id กับ product เพื่อเรียก product name โดย Where จาก id customer แล้ว echo ออกมา เช่น table customer id c_order_1 c_order_2 c_order_3 C001 P001 P002 P003 table product id name P001 มะม่วง P002 มะนาว P003 มะพร้าว เสร็จแล้วให้ fetch โดย where จาก id customer แล้วดึงค่า c_order ทั้ง 3 field มาเทียบชื่อแล้วแสดงผล มะม่วง มะนาว มะพร้าว โค๊ด: $conn=mysql_connect("localhost","root",""); แสดงข้อมูลทั้งหมดใน table โค๊ด: $conn=mysql_connect("localhost","root",""); หัวข้อ: Re: Join Table เรียกข้อมูลแบบนี้ยังไง เริ่มหัวข้อโดย: genetic ที่ 26 พฤศจิกายน 2009, 14:26:35 ผมเอาอีกวิธีมาเสนอครับ เป็นการใช้ sub query (ในกรณีที่สินค้ามีแค่ c_order_1 และ c_order_2 มันก็จะออกมาครับ)
โค๊ด: $sql = " SELECT id, (SELECT name FROM product WHERE id = c_order_1) as pro_name1, (SELECT name FROM product WHERE id = c_order_2) as pro_name2, |