我有一個表的列id,product_type,product_id,數量都是整數。 我需要根據product_type從其他表中選擇數據。例如。如果product_type爲0,則從tableA中選擇,如果product_type爲1,則從tableB等中選擇。我嘗試找到解決方法如何創建select但未成功。有人能幫助我嗎。我感謝每一個幫助。謝謝。SQLite從基於列值的多表中選擇
回答
將主表與各個產品表連接起來,但使用左連接並在連接條件中包含product_type = x
過濾器,以便僅實際連接所需的記錄。
這會導致很多NULL
值;使用3210獲得非NULL
值輸出:
SELECT sales.id,
sales.quantity,
sales.product_type,
coalesce(tableA.name, tableB.name) AS name,
coalesce(tableA.color, tableB.color) AS color,
tableA.numberOfAs -- is NULL for other product types
FROM sales
LEFT JOIN tableA ON sales.product_type = 0 AND
sales.product_id = tableA.product_id
LEFT JOIN tableB ON sales.product_type = 1 AND
sales.product_id = tableB.product_id
WHERE ...
我很想把它變成一個視圖,然後我可以做簡單的選擇... – 2013-02-20 21:54:13
聽起來像是你需要一個CASE語句
SELECT
CASE
WHEN product_type = 1 THEN (SELECT column FROM table1 WHERE ...)
WHEN product_type = 2 THEN (SELECT column FROM table2 WHERE ...)
END
FROM table
大概可以使用加入,但將取決於您的架構更有效率。
我認爲OP希望從'TableA'中選擇多個字段,'TableB'取決於'table'中的product_type,而不僅僅是一個字段 – Saju 2013-02-20 16:55:15
然後多個CASE語句。 – 2013-02-20 17:05:24
- 1. 選擇基於列的值
- 2. 基於其他值從多行中選擇相同的列
- 3. SQLite的 - 選擇基於總
- 4. SQlite基於語言的表選擇
- 5. 基於最大列值從列表中選擇數據幀
- 6. 從數組列表中選擇基於其百分比的值
- 7. 使基於下拉列表值選擇
- 8. awk基於分隔符從多列中選擇和求和值
- 9. 選擇基於另一個表的值從另一個表列
- 10. 查詢以基於此多個條件從表中選擇值列表
- 11. 基於值從另一個表格中選擇列名稱
- 12. sqlite combine從多列中選擇全部
- 13. 使用Javascript從多個選擇選擇列表中選擇值
- 14. 從multiselct列表中選擇多個值
- 15. 如何從sqlite中的多個表中選擇特定的列?
- 16. SQLite的 - 更新基於值從另一個表中的列
- 17. 從表中選擇一列中的值分成多列的值
- 18. 從表中選擇多月 - sqlite
- 19. SQLite腳本從多個表中選擇
- 20. jQuery的改變基於兩個選項選擇列表值值
- 21. 如何從多個表中選擇基於多對多關係?
- 22. SQLite的 - 更新基於值從其他兩個表列列
- 23. 基於多行值的SQL選擇
- 24. JQuery基於多個子值的選擇
- 25. 選擇基於值的行,多行
- 26. 基於多個列的值從一列獲取值的列表
- 27. 基於類的jquery多列選擇器
- 28. 基於列值的條件選擇
- 29. 選擇基於列的值唯一行
- 30. 基於選擇值篩選表格行
請編輯您的帖子,包括你的企圖在解決方案中的一個。謝謝。 – bernie 2013-02-20 16:39:11
更多信息。請顯示錶結構並列出您想要在結果集中看到的列。 – 2013-02-20 16:39:33
通常,當您需要執行動態選擇源表的查詢時,這表明您的數據庫設計存在缺陷。顯示完整的數據庫設計,也許我們可以提供幫助。 – JohnFx 2013-02-20 16:46:28