0
Q
搜索多個表的外鍵
A
回答
0
不需要外鍵約束。
關係數據庫通過在列中存儲常用值來建立行之間的「關係」。
你能編寫一個查詢返回vendas
中代表「當前年銷售額」的行嗎?
SELECT v.id
FROM `vendas` v
WHERE ...
你能那麼寫返回同一組,與來自produtos_vendidos
匹配的行沿查詢?
SELECT v.id
, pv.id_venda
, pv.id_produto
FROM `vendas` v
JOIN `produtos_vendidos` pv
ON pv.id_venda = v.id
WHERE ...
一旦你有,你可以添加一個加盟produtos
SELECT v.id
, p.*
FROM `vendas` v
JOIN `produtos_vendidos` pv
ON pv.id_venda = v.id
JOIN `produtos` p
ON p.id = pv.id_produtos
WHERE ...
這很可能,這將返回行的多個副本produtos
。
要消除這些重複項,我們可以使用GROUP BY
子句,或者我們可以重寫查詢。
一種可能的方法是對相關子查詢使用EXISTS謂詞。下面是一個例子:
SELECT p.*
FROM `produtos` p
WHERE EXISTS (SELECT 1
FROM `vendas` v
JOIN `produtos_vendidos` pv
ON pv.id_venda = v.id
WHERE pv.id_produtos = p.id
AND ...
)
還有其他的查詢模式會返回等價的結果。
相關問題
- 1. 的has_many多個外鍵搜索
- 2. 在多個表中SQLite主鍵搜索
- 3. 多個關鍵字搜索
- 4. 搜索多個關鍵詞
- 5. 搜索多個表?
- 6. SQL多個外鍵與多個表上的單個外鍵
- 7. 如何搜索多個表和搜索關鍵字的關係在其他表
- 8. 多個外鍵許多表
- 9. mySQL - 多個表的外鍵?
- 10. 多個表的外鍵
- 11. 外鍵指的多個表
- 12. 有多個表的外鍵
- 13. 搜索頁從多個表中搜索
- 14. Django Sphinx外鍵搜索
- 15. 搜索通過外鍵
- 16. 搜索多個關鍵字的文本
- 17. 多個陣列內部的搜索鍵
- 18. 主鍵搜索上的多個結果
- 19. 在Shiny中搜索DataTables中的「智能」搜索(搜索多個關鍵字)
- 20. 搜索通過多個表
- 21. 搜索多個表Mysql
- 22. PHP搜索多個表
- 23. Sql搜索多個表
- 24. 搜索跨多個表
- 25. 搜索多個表格
- 26. 搜索多個列表
- 27. SQLite3多個FTS表搜索
- 28. 搜索多個表ASP.NET MVC
- 29. 搜索多個MySQL表
- 30. 搜索多個表(SQL)
這是一個簡單的'JOIN'。任何SQL教程都應該解釋如何連接表。 – Barmar