簡體   English   中英

在 MySQL 中對超過 2 個表執行 INNER JOIN

[英]Perform an INNER JOIN with more than 2 tables in MySQL

我最近才了解到 SQL INNER JOIN ,我想將它應用到一個項目上,所以基本上我有三個表

  • 付款人
  • 折扣
  • 項目

現在我只是想知道我是否可以同時使用三個表的INNER JOIN一次返回三個表的結果,還是只能使用 2 個表?

如果可以使用超過 2 個表的INNER JOIN ,請指導我如何操作,如果沒有,請告訴我如何以任何其他可能的方式進行操作。

現在這是我目前的查詢,它不能按預期工作:

SELECT *
FROM payers
INNER JOIN discounts AND items
ON payers.id = discounts.id AND ON payers.id = items.id;

你想要兩個連接。 語法是:

SELECT *
FROM payers p
INNER JOIN discounts d ON d.id = p.id
INNER JOIN items     i ON i.id = p.id

旁注:

  • 您沒有顯示您的實際架構,因此這使用了您嘗試中描述的連接條件; 您可能需要查看

  • 表別名使查詢更短且更易於閱讀

  • SELECT *通常不是好的做法; 相反,我建議在SELECT子句中枚舉您想要的列,並適當地為沖突的列名(如果有)進行別名(這里,所有三個表都有一個名為id的列,這會導致結果集中的歧義)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM