2014-05-13 35 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