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

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderator: mindphp, ผู้ดูแลกระดาน

M013
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 829
ลงทะเบียนเมื่อ: 22/04/2010 12:02 pm

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

โพสต์โดย M013 » 13/08/2013 6:51 pm

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

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

โค้ด: เลือกทั้งหมด

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

>>ต้องการทราบชื่อนักศึกษาที่มีอายุเท่ากับ 'เยาวภา'
ตัวอย่างการใช้งาน (แบบยังไม่ซ้อน SELECT)
select_all.jpg

-เราต้องทราบอายุของเยาวภาก่อน

โค้ด: เลือกทั้งหมด

SELECT Age
FROM Student
WHERE Student_Fname='เยาวภา';
การเเสดงผล
select_where_select_output.jpg

-เมื่อเราทราบผลเเล้วว่าเยาวภามีอายุ 21

โค้ด: เลือกทั้งหมด

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age='21';
การเเสดงผล
select_where_select1_output.jpg

จาก Code ข้างต้น

โค้ด: เลือกทั้งหมด

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

โค้ด: เลือกทั้งหมด

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age='21';

นำมาเขียนคำสั่งให้อยู่ในรูป SELECT ซ้อน SELECT ได้ดังนี้

โค้ด: เลือกทั้งหมด

SELECT Student_Fname, Student_Lname
FROM Student
WHERE Age=
      (SELECT Age
       FROM Student
       WHERE Student_Fname='เยาวภา');

** จะเห็นว่าหากนำมาเขียนคำสั่งให้อยู่ในรูปแบบ SELECT ซ้อน SELECT จะนำเอาขั้นตอนที่ 1 มาเขียนอยู่ใน Subquery เพราะต้องดำเนินการก่อน

สอนเขียนคำสั่งฐานข้อมูล การ SELECT database (MySQL) รูปแบบ การ Query
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้



ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 1 และ บุคคลทั่วไป 0 ท่าน