ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingSQL ขอถามเรื่องการดึงข้อมูลจากสองตาราง
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: SQL ขอถามเรื่องการดึงข้อมูลจากสองตาราง  (อ่าน 1563 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
deadclosed
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 1,553



ดูรายละเอียด เว็บไซต์
« เมื่อ: 22 มิถุนายน 2013, 02:55:05 »


ผมอยากดึงข้อมูลจาก2ตารางมาโชว์ครับ
โดยที่สองตารางมีโครงสร้างเหมือนกันหมด แต่ข้อมูลข้างในต่างบริษัทกัน
ผมอยากค้นหาชื่อสินค้าเพราะทั้งสองตารางสินค้าชื่อไม่เหมือนกัน
ลองเขียนดูแล้วมันออกมาทั้งtable เลยครับ แถมมันมาเพิ่มตารางให้อีก ช่วยดูให้หน่อยน่ะครับว่าผิดตรงไหน
 wanwan017
โค๊ด:
SELECT * FROM products1 ,products2 where products1.name='name1' OR products2.blogname='name1';

ขอบคุณครับ  wanwan017
บันทึกการเข้า
normalblue
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 145



ดูรายละเอียด
« ตอบ #1 เมื่อ: 22 มิถุนายน 2013, 05:03:16 »

คำถามระบุไม่ชัดเจน ว่าต้องการอะไรกันแน่ แถม query ที่ให้มาก็ไม่สื่อ เลยขอเดาว่าคุณต้องการแบบนี้ครับ

Select * from products1 p full join products2 s on p.name = s.blogname where p.name = 'name1' or s.name = 'name1'
บันทึกการเข้า
adidog
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 238
ออฟไลน์ ออฟไลน์

กระทู้: 1,859



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 22 มิถุนายน 2013, 07:02:45 »

คำถามระบุไม่ชัดเจน ว่าต้องการอะไรกันแน่ แถม query ที่ให้มาก็ไม่สื่อ เลยขอเดาว่าคุณต้องการแบบนี้ครับ

Select * from products1 p full join products2 s on p.name = s.blogname where p.name = 'name1' or s.name = 'name1'
ตามนี้ใช้ join เอาครับ
บันทึกการเข้า

Certain Dri Certain Dri
คุณแม่มือใหม่ คุณแม่มือใหม่
sskzclub
ก๊วนเสียว
*

พลังน้ำใจ: 118
ออฟไลน์ ออฟไลน์

กระทู้: 482



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 22 มิถุนายน 2013, 09:41:50 »

แนะนำ ถ้ามากกว่า 2 ตารางใช้ LEFT JION เอาน่ะครับ ^^
บันทึกการเข้า

serenity337
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 34



ดูรายละเอียด
« ตอบ #4 เมื่อ: 22 มิถุนายน 2013, 09:49:59 »

SELECT * FROM products1 INNER JOIN products2 ON products1.name = products2.blogname Where products1.name='%name1%'
บันทึกการเข้า
goldxp
สมุนแก๊งเสียว
*

พลังน้ำใจ: 73
ออฟไลน์ ออฟไลน์

กระทู้: 557



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 22 มิถุนายน 2013, 11:14:36 »

ถ้าต้องการค้นโครงสร้างเดียวกันในสองตาราง ใช้ union น่าจะดีกว่าครับ แต่ชื่อ column ไ่ม่เหมือนกันต้องเปลี่ยนนามแฝงให้เหมือนกันก่อนครับ

SELECT * FROM(
SELECT 'products1' AS tablename, name FROM products1 UNION
SELECT 'products2' AS tablename, blogname AS name FROM products2
) AS t WHERE t.name='name1'

บันทึกการเข้า

deadclosed
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 1,553



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 22 มิถุนายน 2013, 12:14:32 »

ขอบคุณทุกท่านครับ  wanwan017 ขอไปลองก่อนน่ะครับ
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 22 มิถุนายน 2013, 14:53:17 »

ถ้าเป็นผมนะ..

ผมใช้ใช้ select + select (2Query) จะไม่ได้ใช้ join แบบ Query ครั้งเดียว

เร็วกว่าเห็นๆเลยแหละะ
บันทึกการเข้า

deadclosed
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 133
ออฟไลน์ ออฟไลน์

กระทู้: 1,553



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 22 มิถุนายน 2013, 14:56:46 »

ถ้าเป็นผมนะ..

ผมใช้ใช้ select + select (2Query) จะไม่ได้ใช้ join แบบ Query ครั้งเดียว

เร็วกว่าเห็นๆเลยแหละะ

ขอบคุณครับ  wanwan017
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์