2016-02-26 61 views
0

我有3個表:使用左聯接語法SQL

**user** 
idnumber | fullname 
2015-01 sample doe 

**Equipment** 
id | Equipment 
1  mic 
2 Extension 

**Reservation_list** 
id | idnumber | reserve_slot | description | equip_id | 
1 2015-011  1   sample   1 
2 2015-011  2   sample2  2 


**reservation slots** 
id | reservation_int | reservation_out 
1  10:00    12:00 
2  1:00    2:00 

我在這裏得到的IDNumber:

index.php?idnumber=?2015-011 

$idnumber = $_GET['idnumber']; 

怎麼能是這樣的結果:(你可以看到2個表加入reservation_list和reservation_slots

reservation_int | reservation_out | description | equipment | 
    10:00    12:00   sample  mic 
    1:00    2:00   sample2 extension 

,你可以看到它顯示的 「2015-011」 的所有記錄。

+0

..don't忘記接受的解決方案!!!! – Fr4ncx

回答

0
SELECT R1.description, 
     R2.reservation_int, 
     R2.reservation_out 
    FROM user AS u 
    INNER JOIN reservation_List AS R1 ON (u.idnumber = R1.idnumber) 
    INNER JOIN equipment as E ON(E.id = R1.equip_id) 
    INNER JOIN reservation_slots AS R2 ON(R1.reserve_slot = R2.id) 
    WHERE u.idnumber = "2015-011" 
+1

現在是它的一張4桌。它有設備表,請檢查ty。 –

+0

@ kimdecastro現在就試試..! – Fr4ncx

+0

好吧,先生等會檢查希望它會運行。 –

2

我不能肯定,你需要這裏LEFT JOIN。一個簡單的INNER JOIN將更有效率,給你你需要什麼:

SELECT 
    RS.reservation_int, 
    RS.reservation_out, 
    RL.description 
FROM 
    user 
    INNER JOIN Reservation_List RL ON user.idnumber = RL.idnumber 
    INNER OUTER JOIN Reservation_Slots RS ON RL.ID = RS.ID 
WHERE user.idnumber = '2015-011' 

如果你改變了需求,你需要列出有關user和任何保留類型信息,如果它是可用的。然後你可以切換到LEFT OUTER JOIN