考慮一個表是飛行員的實體,其中一個是布爾型的「NewPilot」。如果飛行員是新飛行員,那麼他/她不會飛行任何飛行(另一張桌子)。現在我想要定義飛行員和飛行之間的關係,即Pilot.NewPilot = False與飛行有着一對多的關係。基於布爾實體的SQL關係(圖表視圖)
回答
SELECT DISTINCT pilot.*,
CASE when flight.pilot_id is NULL then TRUE
else FALSE end as new pilot
FROM pilot
LEFT JOIN flights
on flight.pilot_id = pilot.id
會像甲骨文中的魅力一樣工作。試試吧,讓我知道它是否也適用於MySQL。
...如果不是會提供備用。
泰德。
MySQL沒有'nvl2()'函數,但是如果需要的話,可以使用'coalesce()'和其他聚合函數。 – Denniselite
謝謝@ Denniselite,我選擇了易於閱讀的案例。 –
對於MySQL或PostgreSQL,你可以使用的東西喜歡:
SELECT
DISTINCT pilots.id,
CASE WHEN
flights.pilot_id IS NULL
THEN
TRUE ELSE FALSE END AS is_new_pilot
FROM pilots
LEFT JOIN flights ON flights.pilot_id = pilots.id;
凡is_new_pilot是關於新的試驗標記。我希望它可以幫助你
有點難讀,不是?! –
哪裏?在「CASE」部分?其實,我認爲這是一個正常的閱讀,但我會修復它一點 – Denniselite
沒有我的意思是:總結(coalesce(flights.pilot_id,0))= 0 –
- 1. 實體關係圖表:瞭解基數
- 2. 關於實體關係圖的查詢
- 3. 實體關係圖表
- 4. SQL視圖與關係表
- 5. SQL布爾關係
- 6. 實體關係圖
- 7. 實體關係圖
- 8. 實體關係圖
- 9. 基於JPA註釋生成ERD(實體關係圖)的工具
- 10. 實體關係圖中的實體
- 11. 實體關係圖 - 關係強度?
- 12. 實體關係圖 - 組成
- 13. 創建實體關係圖
- 14. 實體關係圖銷售
- 15. 德比實體關係圖
- 16. 實體關係圖軟件
- 17. Oracle實體關係圖表工具
- 18. 在基於視圖的表視圖中查看基於表的視圖
- 19. 基於視圖的視圖基於等
- 20. 基於視圖的NSColorWell表格視圖
- 21. 更新關係表視圖
- 22. 基於JIRA的任務關係圖
- 23. 基於視圖的導航系統
- 24. ASP.NET MVC中的實體關係圖
- 25. 實體關係圖的酒店
- 26. MS Access的實體關係圖
- 27. 與實體框架的地圖關係
- 28. M2M與中間模型關係的基於類的視圖
- 29. 的Oracle SQL,使用關係視圖
- 30. 實體框架5(預發佈)關於實體關係的新手問題等
你的模式是多餘的 - 你可以從飛行表中導出NewPilot的值。如果您出於性能原因需要保留一個單獨的字段,我建議您改爲記錄NumberOfFlights,並在Flight表上創建觸發器以使其保持同步。 – reaanb