การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

Re: การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

by mindphp » 02/05/2017 11:48 pm

การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT

by M013 » 13/08/2013 6:51 pm

การ SELECT ข้อมูลด้วย SELECT ซ้อน SELECT
เป็นการ SELECT ข้อมูลแบบซับซ้อนมากขึ้น หรือ ที่เรียกว่า SELECT ซ้อน SELECT
โดยจะมี Main Query เป็นตัว SELECT หลัก เเล้วมี Subquery อยู่ภายใต้ Main Query

รูปแบบคำสั่ง

Code: Select all

SELECT ชื่อคอลัมน์
FROM ชื่อตารางข้อมูล
WHERE เงื่อนไข
       (SELECT ชื่อคอลัมน์
        FROM ชื่อตารางข้อมูล
        WHERE เงื่อนไข);
***การทำงานของ SELECT ซ้อน SELECT จะทำการประมวลจาก SELECT ย่อยก่อน

>>ต้องการทราบชื่อนักศึกษาที่มีอายุเท่ากับ 'เยาวภา'
ตัวอย่างการใช้งาน (แบบยังไม่ซ้อน SELECT)
ภาพที่ 1.1 ตารางข้อมูลนักศึกษา
ภาพที่ 1.1 ตารางข้อมูลนักศึกษา
select_all.jpg (87.74 KiB) Viewed 31228 times
-เราต้องทราบอายุของเยาวภาก่อน

Code: Select all

SELECT Age
FROM Student
WHERE Student_Fname='เยาวภา';
การเเสดงผล
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 1.2 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_select_output.jpg (11.92 KiB) Viewed 31228 times
-เมื่อเราทราบผลเเล้วว่าเยาวภามีอายุ 21

Code: Select all

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age='21';
การเเสดงผล
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
ภาพที่ 1.3 จากการใช้คำสั่งจาก Code ข้างต้นจะเเสดงผลออกมาดังภาพ
select_where_select1_output.jpg (35.86 KiB) Viewed 31228 times
จาก Code ข้างต้น

Code: Select all

SELECT Age
FROM Student
WHERE Student_Fname='เยาวภา';

Code: Select all

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age='21';
นำมาเขียนคำสั่งให้อยู่ในรูป SELECT ซ้อน SELECT ได้ดังนี้

Code: Select all

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age=
      (SELECT Age
       FROM Student
       WHERE Student_Fname='เยาวภา');
** จะเห็นว่าหากนำมาเขียนคำสั่งให้อยู่ในรูปแบบ SELECT ซ้อน SELECT จะนำเอาขั้นตอนที่ 1 มาเขียนอยู่ใน Subquery เพราะต้องดำเนินการก่อน

สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query

Top