2014-05-13 36 views
-3

我有兩個MySQL表HouseHold和UserProfile。這兩個表都包含HouseHoldID列。我想選擇HouseHold表中兩個表中的HouseHoldID相等的所有行。我怎樣才能做到這一點?我正在使用下面的代碼使用兩個表中的條件從MySQL表中選擇數據

select * from Household where Household.HouseholdID = UserProfile.HouseholdID 

但它沒有給任何事情,而是顯示錯誤。 任何人都可以幫助我嗎?

+5

請仔細閱讀並理解SQL JOIN –

+0

你試過了什麼? http://www.tutorialspoint.com/mysql/mysql-using-joins.htm請閱讀此鏈接 – NetStarter

+0

是的,我現在就此事澄清。我很困惑使用JOIN –

回答

0

你可以使用一個JOIN

select * from Household 
JOIN UserProfile 
ON UserProfile.HouseholdID=Household.HouseholdID 

或與EXISTS

select * from Household 
WHERE EXISTS 
(
    SELECT NULL 
    FROM UserProfile 
    WHERE UserProfile.HouseholdID=Household.HouseholdID 
) 

或與IN

select * from Household 
WHERE Household.HouseholdID IN 
(
    SELECT UserProfile.HouseholdID 
    FROM UserProfile 
) 

或用舊的方式從聲明

select * from Household, UserProfile 
WHERE UserProfile.HouseholdID=Household.HouseholdID 

這有點取決於你想要什麼樣的數據

+0

非常感謝。我有想法 –

+0

沒問題。很高興幫助你 – Arion

0

您需要選擇用戶配置表以及

select * from Household h JOIN UserProfile u ON h.HouseholdID = u.HouseholdID 
0

你可以試試:

SELECT A.* FROM Household A INNER JOIN UserProfile B ON A.HouseholdID = B.HouseholdID 
0

您需要JOIN表。試試這個:

select * from 
Household h JOIN 
UserProfile u ON u.HouseholdID =h.HouseholdID 

瞭解更多關於加入here

0

那麼,SQL語言具有非常簡潔的方式給出的標準來選擇兩個表中的記錄,它被稱爲JOIN

SELECT H.*, U.* FROM Household H 
INNER JOIN UserProfile U ON U.HouseholdID = H.HouseholdID 
1

你必須從兩個表
選擇像下面的方式:

select * from Household, UserProfile where Household.HouseholdID = UserProfile.HouseholdID 

或使用加入

select * from Household h 
JOIN UserProfile u 
ON u.HouseholdID=h.HouseholdID