สอบถามเรื่องฐานข้อมูลเกี่ยวกับการ Join ตาราง เน้นเรื่อง Database ครับ
พอดีกำลังงงเกี่ยวกับฐานข้อมูลครับ
คือมีตาราง อยู่ 2 ตารางครับดังนี้
Code (SQL)
create table employee (
EmpID varchar(20),
EmpName varchar(30),
EmpType enum('Drive','Hostess','BusBoy'),
primary key(EmpID)
)Engine = InnoDB
และ
Code (SQL)
create table bus(
BusID int(3) not null auto_increment,
BusDrive1 varchar(20), // พนักงานขับรถคนที่ 1
BusDrive2 varchar(20), // พนักงานขับรถคนที่ 2
BusBoy varchar(20), // เด็กรถ
BusHostess varchar(20), // พนักงานต้นรับ
primary key(BusID),
foreign key(BusDrive1) references employee(EmpID),
foreign key(BusDrive2) references employee(EmpID),
foreign key(BusBoy) references employee(EmpID),
foreign key(BusHostess) references employee(EmpID)
)Engine = Innodb
สิ่งที่ผมสร้างในตาราง bus นั้นมันถูกต้องหรือไม่ครับเพราะเท่าที่ผมได้ลองทำแล้วมันจะมีปัญหาตอนที่ จะเอารายชื่อของพนักงานมาโชว์แทน รหัสพนักงาน ซึ่งมันจะต้อง Join ตาราง เบื้องต้นผม Join ตารางดังนี้
Code (SQL)
select * from bus
inner join employee on bus.BusDriver1 = employee.EmpID
ซึ่งมันจะโชว์เฉพาะ รายชื่อของคนขับรถ คนแรกเท่านั้น
สรุป
พอมีวิธีไหนที่จะให้มันโชว์ราชชื่อของพนักงานทั้งหมดหรือไม่ครับTag : PHP, MySQL
Date :
2013-05-08 22:24:44
By :
axe7
View :
825
Reply :
5
Code (PHP)
SELECT
Emp1.EmpName AS Name1,
Emp2.EmpName AS Name2
FROM
bus
INNER JOIN employee Emp1 ON bus.BusDriver1 = Emp1.EmpID
INNER JOIN employee Emp2 ON bus.BusDriver2 = Emp2.EmpID
ลองดูใหม่ครับ
หากคนขับรถที่ 2 ไม่มี จะไม่ขึ้นข้อมูลนะครับ ต้องเปลี่ยนเป็น LEFT JOIN
ประวัติการแก้ไข 2013-05-08 22:35:44 2013-05-08 22:36:33
Date :
2013-05-08 22:33:27
By :
ManGal49
Code (PHP)
SELECT
Emp1.EmpName AS Name1,
Emp2.EmpName AS Name2
FROM
bus
INNER JOIN employee Emp1 ON bus.BusDrive1 = Emp1.EmpID
INNER JOIN employee Emp2 ON bus.BusDrive2 = Emp2.EmpID
โทดทีครับ ^^"
Date :
2013-05-08 22:44:37
By :
ManGal49
Date :
2013-05-09 06:27:28
By :
mr.win
Load balance : Server 01