簡體   English   中英

3個表上的外鍵連接

[英]Foreign key join on 3 tables

我有一個表TableA,它包含表TableB和TableC的2個不同的外鍵。 我試圖從表TableB獲取數據,但取決於表TableC中的值。

有了這個查詢,我得到了所有的值,但我不知道如何編寫where子句來過濾和獲取我需要的數據。

SELECT TableC.value1,TableB.value2 
FROM TableA 
JOIN TableB ON TableB.ID = TableA.ID 
JOIN TableC ON TableC.ID = TableA.ID 

編輯:我的表的圖片。 在此輸入圖像描述

所以我試圖顯示表B中的數據,但只顯示表C中匹配的數據。

新編輯: 在此輸入圖像描述

我從2個表中獲取值,但現在我只需要顯示等於“val2”的列A值。 B列的值為“val2”,“val2”,“val3”等的圖像。 我只需要顯示“val2”。

我不確定我的問題是否正確,但是不應該做以下工作嗎?

SELECT TableC.value1,TableB.value2 
FROM TableA 
JOIN TableB ON TableB.ID = TableA.ID 
JOIN TableC ON TableC.ID = TableA.ID 
WHERE TableC.myColumn = MyValue

您不必使用WHERE子句。 你需要的是解決您的JOIN ,使之JOINtablec與條件TableA.TableC_ID = TableC.ID代替,就像這樣:

SELECT TableC.value1,TableB.value2 
FROM TableA 
JOIN TableB ON TableB.ID        = TableA.ID 
JOIN TableC ON TableA.TableC_ID = TableC.ID
WHERE tableA.ColumnA = 'val2';

暫無
暫無

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

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