1

次のモデルがあるとします。

ここに画像の説明を入力

ご覧のとおり、industry_id は null にすることができます。user.id を使用しているときに、industry.name (存在する場合)、user.description、profile.name、および project.title (すべてのプロジェクト タイトル) を 1 つの MySQL クエリで取得できますか?

4

1 に答える 1

2

はい、JOIN2 つのテーブル:

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 に答える