結合を使用して複数のテーブルからレコードを取得します

ManojさんGhediya:

私はそのような「など3つのテーブル持ってtbl_purchase」、「tbl_user」&「tbl_contestantを」。私はからのすべてのレコード必要tbl_purchase「と 2つの表」であり「tbl_user」&「tbl_contestantを」。

私のクエリ、

    SELECT tp.*, tu.* 
       FROM tbl_purchase tp
       INNER JOIN tbl_user tu 
       ON tu.user_id = tp.user_id               

表:tbl_purchase

 +-------+-------------+------+
 | p_id  | user_id     | Star |
 +-------+-------------+------+
 | 1     | 1           | 50   |
 | 2     | 4           | 100  |
 | 3     | 6           | 150  |
 +-------+-------------+------+

表:tbl_user

 +-------+-------------+
 | u_id  | name        |
 +-------+-------------+
 | 1     | Sachin      |
 | 4     | Akshay      |
 +-------+-------------+

表:tbl_contestant

 +-------+-------+-------------+
 | c_id  | u_id  |  Name       |
 +-------+-------+-------------+
 | 1     |   6   |  Mayank     |
 | 2     |   8   |  Nikhil     |
 | 3     |   9   |  Vipul      |
 +-------+-------+-------------+

私は、結果の下にしたいです

 +-------+-------+-------------+------+
 | p_id  | u_id  |  Name       | Star |
 +-------+-------+-------------+------+
 | 1     | 1     |  Sachin     | 50   |
 | 2     | 4     |  Akshay     | 100  |
 | 3     | 6     |  Mayank     | 150  |
 +-------+-------+-------------+------+
zedfoxus:

このSQLクエリを試してみてください。

select p.p_id, u.u_id, u.name, p.star
from tbl_purchase p
inner join (
    select u_id, name from tbl_user
    union
    select u_id, name from tbl_contestant
) u on p.user_id = u.u_id;

結果:

p_id    u_id    name    star
1       1      Sachin   50
2       4      Akshay   100
3       6      Mayank   150

説明:

  • ユーザーは2つのテーブルにあり - tbl_userとtbl_contestant
  • だから、あなたは(重複を取り除く)UNIONを使用して、ユーザーを結合する必要があります
  • その後、あなたの購入テーブルに参加することができます

例:https://rextester.com/RKHXL43587

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=347413&siteId=1