-4

テーブル構造

LOG_TABLE から選択していますが、選択時に、LOG_TABLE と USER_TABLE の ID が一致する USER_NAME テーブルに対応さuser_id changesせたいと考えています。user_idusername

4

3 に答える 3

3

あなたは始めたばかりなので、ここで追加の回答を提供します。この INNER JOIN コードは、USER_TABLE に一致する LOG_TABLE のすべての行を選択します。

SELECT l.id, l.changes, u.username
FROM LOG_TABLE l
INNER JOIN USER_TABLE u ON u.id = l.user_id

LOG_TABLE から SELECT したいが、USER_TABLE に一致するかどうかは気にしない場合は、代わりに LEFT JOIN を実行できます。

SELECT l.id, l.changes, u.username
FROM LOG_TABLE l
LEFT JOIN USER_TABLE u ON u.id = l.user_id

JOIN を記述するときは、JOIN のキーワードと条件を明示的に記述することを常にお勧めします。暗黙的な JOIN (FROM 句の後にコンマで区切られたテーブルをリストする) を使用すると、WHERE 句が誤って省略された場合にデカルト積が生成される危険性があります。

適切な例として、OP がコンマ区切りの JOIN 表記を使用し、誤ってデカルト積を作成した場合の質問を次に示します。MySQL クエリ - 結合の問題

于 2013-03-15T18:36:04.923 に答える
2

あなたが欲しいのはJOINです。http://dev.mysql.com/doc/refman/5.0/en/join.htmlを確認してください。この特定の例については、次のようなものが必要です。

SELECT l.changes, u.username
FROM LOG_TABLE l, USER_TABLE u
WHERE u.id=l.user_id
于 2013-03-15T18:21:32.700 に答える
1
SELECT l.changes, u.username
FROM LOG_TABLE l
JOIN USER_TABLE u on u.id=l.user_id
于 2013-03-15T18:44:13.067 に答える