我有两个MySQL表HouseHold和UserProfile。这两个表都包含HouseHoldID列。我想选择HouseHold表中两个表中的HouseHoldID相等的所有行。我怎样才能做到这一点?我正在使用下面的代码使用两个表中的条件从MySQL表中选择数据
select * from Household where Household.HouseholdID = UserProfile.HouseholdID
但它没有给任何事情,而是显示错误。 任何人都可以帮助我吗?
我有两个MySQL表HouseHold和UserProfile。这两个表都包含HouseHoldID列。我想选择HouseHold表中两个表中的HouseHoldID相等的所有行。我怎样才能做到这一点?我正在使用下面的代码使用两个表中的条件从MySQL表中选择数据
select * from Household where Household.HouseholdID = UserProfile.HouseholdID
但它没有给任何事情,而是显示错误。 任何人都可以帮助我吗?
你可以使用一个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
这有点取决于你想要什么样的数据
非常感谢。我有想法 –
没问题。很高兴帮助你 – Arion
您需要选择用户配置表以及
select * from Household h JOIN UserProfile u ON h.HouseholdID = u.HouseholdID
你可以试试:
SELECT A.* FROM Household A INNER JOIN UserProfile B ON A.HouseholdID = B.HouseholdID
您需要JOIN
表。试试这个:
select * from
Household h JOIN
UserProfile u ON u.HouseholdID =h.HouseholdID
了解更多关于加入here。
那么,SQL语言具有非常简洁的方式给出的标准来选择两个表中的记录,它被称为JOIN:
SELECT H.*, U.* FROM Household H
INNER JOIN UserProfile U ON U.HouseholdID = H.HouseholdID
你必须从两个表
选择像下面的方式:
select * from Household, UserProfile where Household.HouseholdID = UserProfile.HouseholdID
或使用加入
select * from Household h
JOIN UserProfile u
ON u.HouseholdID=h.HouseholdID
请仔细阅读并理解SQL JOIN –
你试过了什么? http://www.tutorialspoint.com/mysql/mysql-using-joins.htm请阅读此链接 – NetStarter
是的,我现在就此事澄清。我很困惑使用JOIN –