2017-02-25 40 views
-1

這是數據庫結構如何使用連接選擇數據?

enter image description here

我想在PHP站點,以顯示它,我不知道該如何陳述的。 我想選擇AdressOrderIdOrdersFirstName LastNameclientAddress ZipCode CityOrderDescriptionOrderStatus

+0

請提供你已經嘗試了一些代碼。 –

+0

$ SQL = 「SELECT orders.OrderID,client.FirstName,client.LastName,adress.Adress,adress.ZipCode,adress.City,orderstatus.OrderDescription從接單 \t \t \t \t \t」 只有這樣做 –

+0

還等什麼試圖顯示,只是訂單中的所有OrderID列表?還有客戶名字和姓氏列表? 或者你是否試圖根據OrderID獲取名字,姓氏,地址,ZipCode,城市和OrderDescription? –

回答

0

你要加入他們的基礎上,外鍵在訂單表和相關表中的主鍵。

即使缺少一個或多個相關數據(例如,如果地址不見了),也可以使用「LEFT JOIN」確保所有訂單都會顯示。

基於您的代碼:

SELECT 
    orders.OrderID, 
    client.FirstName, 
    client.LastName, 
    adress.Adres‌​s, 
    adress.ZipCode, 
    adr‌​ess.City, 
    orderstatus‌​.OrderDescription 
FROM orders 
LEFT JOIN client ON client.ClientId = orders.ClientId 
LEFT JOIN adress ON adress.AdressId = orders.AdressID 
LEFT JOIN orderstatus‌ ON orderstatus‌.OrderStatusID = orders.OrderStatusID 

或別名:

SELECT 
    o.OrderID, 
    c.FirstName, 
    c.LastName, 
    a.Adres‌​s, 
    a.ZipCode, 
    a​.City, 
    os.OrderDescription 
FROM orders o 
LEFT JOIN client c ON c.ClientId = o.ClientId 
LEFT JOIN adress a ON a.AdressId = o.AdressID 
LEFT JOIN orderstatus‌ os ON os‌.OrderStatusID = o.OrderStatusID 
0

你想內join.try這

select 
     o.OrderId,c.FirstName,c.LastName,a.Address.a.ZipCode,a.City,od.OrderDescription 
from Orders o 
join client c using(clientid) 
join Adress a using(addressid) 
join OrderStatus od using(orderstatusid); 
相關問題