當特定列的值與tableY
中相應列的值匹配時,我試圖顯示tableX
數據的幾列。基於多個表和列的SQL條件數據顯示
假設我們有2個表:一個名爲person
包含一個名爲membershipid
列,另一個叫tasks
包含名爲memberid
列。在這種情況下,顯示該條件的記錄將是如下:關於person
= memberid
membershipid
上tasks
這是否需要使用JOIN子句的或我仍然可以使用WHERE關鍵字的呢?
感謝您的關注。
當特定列的值與tableY
中相應列的值匹配時,我試圖顯示tableX
數據的幾列。基於多個表和列的SQL條件數據顯示
假設我們有2個表:一個名爲person
包含一個名爲membershipid
列,另一個叫tasks
包含名爲memberid
列。在這種情況下,顯示該條件的記錄將是如下:關於person
= memberid
membershipid
上tasks
這是否需要使用JOIN子句的或我仍然可以使用WHERE關鍵字的呢?
感謝您的關注。
從我對你的問題的理解中,聽起來像是的,你需要一個INNER JOIN
才能從tableX
中抽出行,其中在tableY
的加入列中有一個匹配值。
因此,像:
SELECT tableXcol1, tableXcol2, tableXcol3
FROM tableX
INNER JOIN tableY
ON tableX.specific_column = tableY.specific_column
儘管它可以與where
條款來完成,我會建議你使用連接。
的where
風格(不推薦)
select t1.field1, t1.field2, ...
from aTable as t1, anotherTable as t2
where t1.field1 = t2.field1;
的join
風格(推薦)
select t1.field1, t1.field2, ...
from aTable as t1 inner join anotherTable as t2 on t1.field1 = t2.field1
如果你只需要從TableX的而不是從tableY數據,做一個JOIN
可能會給你重複的數據。改爲使用EXISTS
,例如
SELECT person.col1, person.col2
FROM person
WHERE
EXISTS (
SELECT 1
FROM tasks
WHERE
person.membershipid = tasks.memberid
)
您正在使用哪些DBMS? Postgres的?甲骨文? – 2013-04-25 21:52:33
我正在使用Postgres進行此設置。 – speshock 2013-04-25 21:53:54
@speshock下面的答案有助於回答你的問題嗎? – 2013-06-05 14:43:19