[sql] สามารถ join ตารางที่ไม่มี key ร่วมกันได้หรือเปล่าครับ

เริ่มโดย nuningplus, 21 กันยายน 2012, 17:54:12

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

nuningplus

ผมอยากให้ 2 ตาราง ที่ไม่มีคีย์ร่วมกันสามารถ join ข้อมูลร่วมกันได้

คือตาราง teacher มีคอลัมน์ t_id, t_name โดยมีค่า 1, นายสมชาย
ตาราง student มีคอลัมน์ s_id, s_name, t_id โดยมีค่า 3, นางสมหญิง, 9

อยากให้สองตารางนี้มา join กันครับ ต้องเขียนโค้ดยังไงครับ

ขอบคุณมากครับ


@Roverpost

อ้างถึงจาก: marus ใน 21 กันยายน 2012, 18:21:38
SELECT * FROM table1,table2

ตามนี้เลยครับ จะ Left Right ก็จัดไปครับ  ลองศึกษาเชิงลึกดูนะครับ แล้วจะรู้ว่ามัน ประยุกต์ใช้ได้เยอะ
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

nuningplus


Bigguide

select a.t_name,b.s_name from teacher as a
left join
(select s_name from student where t_id=9) as b
on a.t_id=b=t_id
where xxxxx=yyyyy

select * แนะนำให้หลีกเลี่ยงนะครับ ถ้าจะ select ควร select เฉพาะค่าที่นำมาใช้จริงๆ

แก้ไข.. ไม่มี key ร่วมกันยังไงครับตัวอย่างที่ให้มามี t_id ทั้งคู่?
I'm a dreamer

nuningplus

อ้างถึงจาก: Bigguide ใน 22 กันยายน 2012, 23:06:10
select a.t_name,b.s_name from teacher as a
left join
(select s_name from student where t_id=9) as b
on a.t_id=b=t_id
where xxxxx=yyyyy

select * แนะนำให้หลีกเลี่ยงนะครับ ถ้าจะ select ควร select เฉพาะค่าที่นำมาใช้จริงๆ

แก้ไข.. ไม่มี key ร่วมกันยังไงครับตัวอย่างที่ให้มามี t_id ทั้งคู่?

คือคีย์ร่วมกันผมหมายถึงมีคีย์เหมือนกันอะครับ ถ้า 1 กับ 1 มันเป็นคีย์เหมือนกัน ก็ใช้ INNER JOIN กันได้ แต่ถ้าผมจะ join โดยที่คีย์ของแต่ละตารางเป็น 0 กับ 1 (ตามตัวอย่าง) อะไรทำนองนี้ครับ

MeenyFancy

ตามทฤษฏีมัน join ได้ครับ
แต่ใช้งานจริงไม่ได้เรื่องหรอก เพราะเราไม่สามารถระบุได้ว่าต้องการให้เลือกจากอะไร ยกเว้นจะส่ง parameter ไปสองค่าของ table1 อันนึง table2 อีกอันนึง
แต่มันก็ดูพิลึกๆ

ถ้าข้อมูลมาจาก 2 ระบบ ผมว่า migrate ให้เรียบร้อยค่อยมาทำดีกว่ามั้ง
Have a good trip.
[direct=http://petdeecare.com]สุนัขป่วย[/direct] [direct=http://petdeecare.com]แมวป่วย[/direct]
[direct=http://petdeecare.com]หนูป่วย[/direct] [direct=http://petdeecare.com]อาหารแมว[/direct] [direct=http://petdeecare.com]อาหารหมา[/direct]

seowizard

design ใหม่ได้ไหมผมว่ามันผิดหลัก normalization อยู่นะ  ความสัมพันธ์ของทั้งสอง entity น่าจะเป็นแบบ  one-to-many 
คือ ครู 1 คนสามารถสอนนักเรียนได้หลายคน ฉะนั้น  primary key เช่น teacher_id ควรจะมี foreign key ในตารางของ student ด้วยนะครับ
การ join กันของ 2 ตารางจะทำให้ performance ในการ select ข้อมูลมาดูมีความรวดเร็ว ลดปัญหาคอขวดได้

แต่ถ้า design ใหม่ไม่ได้ก็ตามความเห็นด้านบนที่แนะนำนั่นแหละครับ แต่บอกตามตรงว่าคนมา develop ต่อนี่ต้อง optimize กันเหนื่อยแน่  :P

gubaaball

ออกแบบ db ได้ดี มีชัยกว่าครึ่งครับ พัฒนาต่อจะได้ไม่เหนื่อย  :wanwan020: