2016-11-23 15 views
0

TABLE1のサブサブSQLクエリを選択 -3つのテーブル

A_ID(int型)

account_data -

C_ID(int型)

名前(varchar型)

table2のCUSTOMER_DATAを

c_id(int) - >customer_dataを使用してください。 c_id

plan_id(int型)

表3 - game_data

g_id(int型)

ソート(int型)

A_ID(int)が - >account_dataを使用しています。私はaccount_dataからgame_dataを選択するには、サブクエリを使用して

a_id

GAME_NAME(VAR)。そのような :

SELECT `a_id`,`c_id`,`plan_id`, 
(SELECT `game_name` FROM `game_data` WHERE `a_id` = a.`a_id` ORDER BY `sort` ASC LIMIT 1) as main_game 
FROM `accoubt_data` AS a WHERE `a_id` > 0 ORDER BY `id` DESC 

このSQLはaccount_data

から選択game_dataための作業です。しかし、私は何かを行うことができますどのように

customer_dataからgame_dataを選択するためにそれを使用することはできませんか?

customer_data 
+----------------------+ 
| c_id  | name  | 
+----------------------+ 
| 1001  | Joe  | 
| 1002  | John  | 
| 1003  | David | 
+----------------------+ 

account_data 
+-------------------------------------+ 
| a_id  | cid  | plan_id  | 
+-------------------------------------+ 
| 6015  | 1002  | 34   | 
| 6028  | 1003  | 1   | 
| 6088  | 1001  | 9   | 
+-------------------------------------+ 

game_data 
+--------------------------------------+ 
| g_id  | game_name | a_id | 
+--------------------------------------+ 
| 8011  | GTA5   | 6015 | 
| 8023  | WWE2016  | 6028 | 
| 8088  | FIFA16  | 6088 | 
| 8095  | FIFA17  | 6088 | 
| 8086  | FIFA15  | 6088 | 
+--------------------------------------+ 

これがベースである私が参加してみソートASC BY customer_data.c_id

+--------------------------------------+ 
| c_id | name  | frist_game  | 
+--------------------------------------+ 
| 1001 | Joe  | FIFA15   | 
| 1002 | John | GTA5    | 
| 1003 | David | WWE2016   | 
+--------------------------------------+ 

C_ID> A_ID> g_id ORDERから

+0

あなたはテーブルを入力するために多くの努力をしました。 'show create table'からの貼り付け出力をコピーする方が簡単でしょうか? – e4c5

+0

トピックの内容を編集しました。ありがとうございます。 – Sky

答えて

1

を、このデータを取得する必要がある

を選択します。

SELECT c.`c_id`,c.name, 
     (SELECT `game_name` FROM `game_data` 
     WHERE `a_id` = a.`a_id` 
     ORDER BY `sort` ASC LIMIT 1) as first_game 
FROM `accoubt_data` a 
JOIN customer_data c ON(a.c_id = c.c_id) 
WHERE a.`a_id` > 0 
ORDER BY a.`id` DESC 
+0

hi sagi、私はcustomer_data.c_idを使用してgame_dataを取得する必要があります。トピックのコンテンツを編集しました。ありがとう。 – Sky

+0

@Sky編集を参照してください。 – sagi

+0

ありがとうございました。 – Sky

0

これを試してください

SELECT cd.c_id,cd.name, first_game 
FROM account_data ad 
inner join game_data gd ON ad.a_id = gd.a_id order by gd.g_id,ad.a_id as games 
inner join customer_data cd on games.c_id = cd.c_id order by cd.c_id 

希望しています。