2015-05-12 75 views
1

在設計數據庫查詢時我非常糟糕,我可以獲得一些幫助嗎?從單表中獲取所有記錄以及單個MySQL查詢語句中的選定記錄

這裏有2個表(樣本):

TABLE user: id, name, relationship_type_id 
TABLE relationship_type: relationship_type_id (fk), relationship, contributing 

現在,我想用一個查詢來獲得:

  1. 所有relationship_type表的記錄(即SELECT * FROM relationship_type
  2. 並且具有的用戶的具體relationshipid = 5

所以結果是這樣的(假設表relationship_type僅具有2個記錄)FROM表1

"data": [ 
     { 
      "relationship": "Friend" // for user id = 5 
     }, 
     { 
      "relationship_type_id": "1" 
      "relationship": "Partner" 
     }, 
     { 
      "relationship_type_id": "2" 
      "relationship": "Friend" 
     } 
    ], 
+0

SELECT列JOIN表2 ON columnA = columnB [WHERE其他條件] – jarlh

回答

1
SELECT user.id, user.name 
FROM user 
LEFT JOIN relationship_type 
ON user.relationship_type_id=relationship_type.relationship_type_id WHERE user.id=5; 
+0

糟糕,列出一切。 – nogias

+0

當然,它是簡單的查詢從兩個表中獲取記錄,爲您提供條件並對其進行自定義。只需使用user.relationship_type_id = relationship_type.relationship_type_id在哪裏並將條件數據過濾。 –

+0

更新答案希望它適合你 –

0
SELECT 
    rt.*, u.* 
FROM 
    relationship_type rt 
    LEFT JOIN 
    user u 
    ON rt.relationship_type_id = u.relationship_type_id 
WHERE 
    u.id = 5 
UNION 
SELECT * 
FROM relationship_type; 
+0

它很接近。有什麼我可以列出表relationship_type中的一切嗎? – nogias

相關問題