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. Django Sphinx外鍵搜索
- 5. 搜索通過外鍵
- 6. 主鍵搜索上的多個結果
- 7. 多個陣列內部的搜索鍵
- 8. 在Shiny中搜索DataTables中的「智能」搜索(搜索多個關鍵字)
- 9. Sql搜索多個表
- 10. SQLite3多個FTS表搜索
- 11. 搜索多個MySQL表
- 12. 搜索多個表(SQL)
- 13. 搜索跨多個表
- 14. SQL Server中多個表的所有列的關鍵字搜索
- 15. 多個元鍵和元值搜索
- 16. 搜索多個關鍵字與tweetsharp
- 17. 插入並搜索多個關鍵字
- 18. SELECT2多個搜索關鍵字
- 19. 多個條件關鍵字搜索
- 20. Java通過多個關鍵字搜索
- 21. LINQ多個關鍵字搜索PagedList
- 22. 有多個鍵搜索和「開始」
- 23. Postgres表是多個表的外鍵
- 24. 實現全文搜索以搜索多個關鍵詞
- 25. 兩個表之間的多個外鍵
- 26. PHP,通過關鍵字搜索的MySQL從多個表
- 27. PHP MYSQL在多個表中搜索相同的關鍵字
- 28. 搜索多個表使用關鍵字PHP的MySQL
- 29. 多關鍵字搜索
- 30. Rails 3中的外鍵搜索失敗
這是一個簡單的'JOIN'。任何SQL教程都應該解釋如何連接表。 – Barmar