2つの異なるIDを使用して異なるテーブルから複数の列を選択するにはどうすればよいですか?

LandAndWater

プロジェクトの場合、特定の人が送信したすべてのメッセージを見つける必要があります。だから、私はこれらのテーブルを持っていると言います:

person_id | first_name | last_name 

メッセージ

message_id | sender_id | receiver_id | message

sender_idとreceiver_idの両方がperson_idを参照します。送信者の姓名、受信者の姓名、およびメッセージを表示する必要があります。特に送信者の名前と受信者の名前を表示するのに問題があります。

私は自分の問題についてさまざまな検索を試みましたが、何も機能していないか、実際に私の問題に関連していないようです。いくつかのソリューションがUNIONを使用しているのを見てきましたが、クラスではまだそれを学びませんでした。これは私がこれまでに持っているものです:

SELECT p.first_name AS "Sender First Name",
    p.last_name AS "Sender Last Name",
    p.first_name AS "Reciever First Name",
    p.last_name AS "Reciever Last Name",
    m.message_id AS "Message ID",
    m.message AS "Message",
    m.send_datetime AS "Message Timestamp"
FROM message m, person p
WHERE m.sender_id = 1
AND m.sender_id = p.person_id;

それは私に与えます:

+-------------------+------------------+---------------------+--------------------+------------+--------------------------------------------+---------------------+
| Sender First Name | Sender Last Name | Reciever First Name | Reciever Last Name | Message ID | Message                                    | Message Timestamp   |
+-------------------+------------------+---------------------+--------------------+------------+--------------------------------------------+---------------------+
| Michael           | Phelps           | Michael             | Phelps             |          1 | Congrats on winning the 800m Freestyle!    | 2016-12-25 09:00:00 |
| Michael           | Phelps           | Michael             | Phelps             |          4 | Thanks!  You're the greatest sprinter ever | 2016-12-25 09:04:00 |
| Michael           | Phelps           | Michael             | Phelps             |          5 | Good luck on your race                     | 2016-12-25 09:05:00 |
+-------------------+------------------+---------------------+--------------------+------------+--------------------------------------------+---------------------+

したがって、送信者の名前は正しいですが、受信者の名前は正しくありません。最後の行をに変更すると

AND m.receiver_id = p.person_id;

次に、正しい受信者名を取得しますが、正しい送信者名は取得しません。

ゴードン・リノフ

2つの結合が必要です。そしてそれはJOIN

SELECT ps.first_name AS "Sender First Name",
       ps.last_name AS "Sender Last Name",
       pr.first_name AS "Receiver First Name",
       pr.last_name AS "Receiver Last Name",
       m.message_id AS "Message ID",
       m.message AS "Message",
       m.send_datetime AS "Message Timestamp"
FROM message m JOIN
     person ps
     ON m.sender_id = ps.person_id JOIN
     person pr
     ON m.receiver_id = pr.person_id
WHERE m.sender_id = 1;

ノート:

  • SQLを学習している場合は、句でコンマを使用することを学習してはいけませFROM
  • 常に適切で明示的なJOIN構文を使用してください
  • この場合、テーブルが2回あるため、テーブルエイリアスを使用する必要があることに注意してくださいFROM
  • いずれかの列がである可能性がNULLある場合はLEFT JOIN、の代わりにを使用しますJOIN

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテーブルを結合してから、2つの異なる列を選択するにはどうすればよいですか?

分類Dev

count関数を使用して異なるテーブルから2つの列を減算するにはどうすればよいですか?

分類Dev

mysqlの条件が異なるテーブルから2つの異なる値を選択するにはどうすればよいですか?

分類Dev

レイアウトが異なる2つのテーブルから列を選択するにはどうすればよいですか

分類Dev

2つの異なるテーブルから選択し、1つの列で並べ替えるにはどうすればよいですか?

分類Dev

重複を削除しながら、列番号が異なる2つのテーブルをマージするにはどうすればよいですか?

分類Dev

共通の列が2つしかない2つの異なるテーブルの重複値を削除するにはどうすればよいですか?

分類Dev

2つの異なるテーブルから取得できる値を選択するにはどうすればよいですか?

分類Dev

2つの異なるテーブルから2つの異なる列の同期を維持するにはどうすればよいですか?

分類Dev

異なるテーブルIDを使用して2つのHTMLテーブルを表示するにはどうすればよいですか?

分類Dev

MySQLで、2つの異なるテーブルから*を選択するにはどうすればよいですか?

分類Dev

SQLite を使用して行数の異なる 2 つのテーブルの列をマージするにはどうすればよいですか?

分類Dev

group by句を使用して2つの異なるテーブル列を乗算するにはどうすればよいですか?

分類Dev

単一のクエリのみを使用して、別のテーブルから2つの異なる値を選択するにはどうすればよいですか?

分類Dev

同じフィールドから異なるデータを含む2つの列を選択するにはどうすればよいですか

分類Dev

選択可能なjQueryUIを使用してテーブル内の1つの列のみを選択するにはどうすればよいですか?

分類Dev

2つの異なるSQLテーブルを比較して異なる値を取得するにはどうすればよいですか?

分類Dev

複数の行を2つの異なるテーブルの他の行と比較して、それらが等しいかどうかを確認するにはどうすればよいですか?

分類Dev

列数が多いテーブルの重複を削除しながら、列番号が異なる2つのテーブルをマージするにはどうすればよいですか?

分類Dev

findViewById(R.id。)のようにJava AndroidStudioで異なるIDを持つ複数のTextViewを選択するにはどうすればよいですか?

分類Dev

数式を使用して、Excelの異なるテーブルの複数の条件に一致させるにはどうすればよいですか?

分類Dev

異なるテーブルの複数の行を削除するにはどうすればよいですか?

分類Dev

SQL:別のテーブルのテーブルから異なる値を選択するにはどうすればよいですか?

分類Dev

同じテーブルの2つの列から1つの行で異なる結果を取得するにはどうすればよいですか?

分類Dev

PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

分類Dev

jQuery ContextMenuを使用して、テーブル内に2つの異なるメニューを上下に配置するにはどうすればよいですか?

分類Dev

共通の列に基づいて、複数のテーブルから異なる列を選択します

分類Dev

2つの異なるテーブルを結合するにはどうすればよいですか?

分類Dev

linq c#を使用して、条件を使用して2つの異なるリストを選択するにはどうすればよいですか

Related 関連記事

  1. 1

    2つのテーブルを結合してから、2つの異なる列を選択するにはどうすればよいですか?

  2. 2

    count関数を使用して異なるテーブルから2つの列を減算するにはどうすればよいですか?

  3. 3

    mysqlの条件が異なるテーブルから2つの異なる値を選択するにはどうすればよいですか?

  4. 4

    レイアウトが異なる2つのテーブルから列を選択するにはどうすればよいですか

  5. 5

    2つの異なるテーブルから選択し、1つの列で並べ替えるにはどうすればよいですか?

  6. 6

    重複を削除しながら、列番号が異なる2つのテーブルをマージするにはどうすればよいですか?

  7. 7

    共通の列が2つしかない2つの異なるテーブルの重複値を削除するにはどうすればよいですか?

  8. 8

    2つの異なるテーブルから取得できる値を選択するにはどうすればよいですか?

  9. 9

    2つの異なるテーブルから2つの異なる列の同期を維持するにはどうすればよいですか?

  10. 10

    異なるテーブルIDを使用して2つのHTMLテーブルを表示するにはどうすればよいですか?

  11. 11

    MySQLで、2つの異なるテーブルから*を選択するにはどうすればよいですか?

  12. 12

    SQLite を使用して行数の異なる 2 つのテーブルの列をマージするにはどうすればよいですか?

  13. 13

    group by句を使用して2つの異なるテーブル列を乗算するにはどうすればよいですか?

  14. 14

    単一のクエリのみを使用して、別のテーブルから2つの異なる値を選択するにはどうすればよいですか?

  15. 15

    同じフィールドから異なるデータを含む2つの列を選択するにはどうすればよいですか

  16. 16

    選択可能なjQueryUIを使用してテーブル内の1つの列のみを選択するにはどうすればよいですか?

  17. 17

    2つの異なるSQLテーブルを比較して異なる値を取得するにはどうすればよいですか?

  18. 18

    複数の行を2つの異なるテーブルの他の行と比較して、それらが等しいかどうかを確認するにはどうすればよいですか?

  19. 19

    列数が多いテーブルの重複を削除しながら、列番号が異なる2つのテーブルをマージするにはどうすればよいですか?

  20. 20

    findViewById(R.id。)のようにJava AndroidStudioで異なるIDを持つ複数のTextViewを選択するにはどうすればよいですか?

  21. 21

    数式を使用して、Excelの異なるテーブルの複数の条件に一致させるにはどうすればよいですか?

  22. 22

    異なるテーブルの複数の行を削除するにはどうすればよいですか?

  23. 23

    SQL:別のテーブルのテーブルから異なる値を選択するにはどうすればよいですか?

  24. 24

    同じテーブルの2つの列から1つの行で異なる結果を取得するにはどうすればよいですか?

  25. 25

    PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

  26. 26

    jQuery ContextMenuを使用して、テーブル内に2つの異なるメニューを上下に配置するにはどうすればよいですか?

  27. 27

    共通の列に基づいて、複数のテーブルから異なる列を選択します

  28. 28

    2つの異なるテーブルを結合するにはどうすればよいですか?

  29. 29

    linq c#を使用して、条件を使用して2つの異なるリストを選択するにはどうすればよいですか

ホットタグ

アーカイブ