假设我们有这个模型:
如您所见,industry_id 可以为空。我可以在拥有 user.id 的情况下通过单个 MySQL 查询获取 industry.name(如果有)、user.description、profile.name 和 project.title(所有项目标题)吗?
最佳答案
是的,JOIN
两个表:
SELECT
i.name,
u.id
FROM Industry AS i
LEFT JOIN `User` AS u ON u.industry_id = i.industry_id;
更新:
对于多个表:
SELECT
i.Name AS InustryName,
p.Name AS UserName,
u.Description,
j.title AS ProjectTitle
FROM Industry AS i
INNER JOIN User AS u ON i.id = u.id
INNER JOIN Profile AS p ON p.user_id = u.id
INNER JOIN Project AS j ON u.id = j.user_id;
请注意:我在表之间使用了 INNER JOIN
,这只会为您提供连接表中匹配的行,您可能需要使用 LEFT JOIN 而不是innner join 以包含不匹配的行,即获取那些在其他表中没有条目的行业。请参阅此博客文章:
关于mysql - 如果存在,如何进行 MySQL 查询以获取其他表字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406308/