2016-03-21 8 views
0

JOIN ON文の集約関数を使用してmysqlテーブルに加わりたいとします。 私はそれを正しくやっているのか分からない。MAX関数を使用したmysql JOIN ON文

ここは私のテーブルです。

  • ID
  • SID
  • をt2sid t2id

Table_2有する(4列)

  • TID:Table_1は(3つの列を有します) t2tid
  • t2value

Table_3(持つ二つの列)

  • は、それらが table_1.sidとに関係を有する
  • t3title

最初の2つのテーブルTable_1Table_2をt3id table_2.t2sid、問題はありませんjそれらを着色する。
table_3.t3idtable_2 t2tid = 2に、次にtable_t2valueをジョーしたいと思いました。ここで

は、私は、MySQL文として、これまで持っているものです。

SELECT MAX(CASE WHEN table2.t2tid=1 THEN table_2.t2value AS 1stid), 
     MAX(CASE WHEN table_2.t2tid=2 THEN table_2.t2value AS 2ndid) 
FORM table_1 
LEFT JOIN table_2 
ON table_2.t2sid = table_1.sid 
LEFT JOIN table_3 
ON table_3.t3id = (i want to join the table_2.t2tid=3 THEN table_2.t2value) 

私は彼らに私が望むように参加することができるだろうか?

+0

"私はtable2.tttid = 3に参加したいですか?THEN table_2.t2value" - これはどういう意味ですか?あなたは私たちにあなたの希望する出力を見せてくれますか? – WillardSolutions

+0

EPBでは、私はクエリ結果にtable_3.t3titleデータを追加したいと思います。テーブルがどのように格納され、互いに関係しているかをここに示します。 table_1とtable_2の列sidは2つの列に関係があります。私がtable_1.sidとtable_2.sidを照会するとしましょう。最初の結果がtable_2.t2valueとtable_2.t2valueから来るので、私はSELECT文で次の結果を得ます。今私はtable_3 table_3.t3idをtable_2.t2tid = 3、table_2.t2valueのどのように再結合したいのですか?この助けを願っています。 – slphp

答えて

0

あなたは次のような意味ですか?

SELECT MAX(CASE WHEN table2.t2tid=1 THEN table_2.t2value AS 1stid), 
     MAX(CASE WHEN table_2.t2tid=2 THEN table_2.t2value AS 2ndid) 
FORM table_1 
LEFT JOIN table_2 
ON table_2.t2sid = table_1.sid 
LEFT JOIN table_3 
ON table_3.t3id = (case when table_2.t2tid=3 THEN table_2.t2value else null end) 
+0

厳しい、あなたが私がtable_3.t3title結果の結果を得ることができなかったと述べたように(その時)を追加したとき。 – slphp

関連する問題