1

假设我们有这个模型:

在此处输入图像描述

如您所见,行业 ID 可以为空。我可以在拥有 user.id 的同时通过单个 MySQL 查询获取他/她拥有的行业名称(如果有的话)、用户描述、配置文件名称和项目名称(所有项目标题)吗?

4

1 回答 1

2

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 而不是内部连接来包含不匹配的行,即获取那些没有条目的行业其他表。请参阅此博客文章:

于 2013-03-14T10:12:18.323 回答