• ベストアンサー

JOIN使ってないのに、JOIN操作の構文エラーっ

SELECT * FROM ( (select * from [table1]) union (select * from [table2]) ); なんでこれが「JOIN操作の構文エラーです。」ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

FromにSelectを書く場合でも、数式と同様にカッコが優先されるから、と思います。

kagen88
質問者

お礼

勉強になりました。ありがとうございました!

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

Table1とTable2の列数は同じですか? Unionの前後の、)と(を取り除くとどうなりますか?

kagen88
質問者

お礼

列数は同じです、 Unionの前後の、)と(を取り除いてうまくいきました!\(^o^)/ でもなんで ") UNION (" はダメでしょうか? (=_=;) ありがとうございました!

関連するQ&A

  • なぜ構文エラーにならないのでしょうか?

    oracle12cで下記のSQLを実行すると13という結果が返ってきます。 しかし、内側のSQLは構文エラーとなります。 Select sum_qty as "13日の金曜日" From ( Select key,Sum(qty) sum_qty From ( Select 'a' key,1 qty from dual union all Select 'a' key,2 qty from dual union all Select 'b' key,10 qty from dual ) ) なぜ13という結果が返ってくるのか理由を知りたいです。

  • ユニオンクエリ 「FROM 句の構文エラーです。」

    ユニオンクエリで複数のテーブルをつなげたいのですが SELECT * FROM 2003(T_案件) UNION ALL SELECT * FROM 2004(T_案件); とすると、 「FROM 句の構文エラーです。」 となります。 二つのフィールドの名前や数やデータ型は一緒のはずです。 何がダメなのでしょうか?

  • inner joinについて

    SQLのデータ抽出方法についてお教え下さい。 TABLE_2をdistinctで重複を無くして、TABLE_1とinner joinさせたいです。 select distinct TABLE_2.id と select TABLE_1.ID from TABLE_1 inner join distinct TABLE_2.ID といったようなことをやりたいです。 TABLE_1 ID 001 001 002 002 002 TABLE_2 ID 001 001 002 002 002 環境はMYSQL5.5になります。よろしくお願いいたします。

  • ちょっと見かけないinner joinについて

    どなたか以下の構文について教えて下さい。 どこのDBMSで使用されるものなのでしょう? SELECT B.項目1, B.項目2, A.項目2, A.項目3 FROM ( ( SELECT * FROM Bテーブル WHERE 項目3>"1" ) B INNER JOIN ( SELECT * FROM Aテーブル WHERE 項目2=10 ) A ON B.項目1=A.項目1; 意味はわかるのですが、普通のinner joinとは違うもので。

  • SQL文でエラーが出ます。

    MySQLの事で質問です。 テーブル1~4を結合してフィールド「comment」を検索 する時にフィールド「postDate」の降順でソートしたい のですがエラーが出ました。 「SQLコマンド」 select text from table1 union all select comment from table2 union all select comment from table3 union all select comment from table4 where match(commentIndex) against("検索ワード" in boolean mode) order by postDate desc; 試しに union all select comment from table2 union all select comment from table3 union all select comment from table4 の部分を削除して実行してみた所、成功しました。 後、order by postDate desc;のみ削除した場合でも成功しました。 エラーの内容はこれです↓↓ Unknown column 'postDate' in 'order clause' フィールド「postDate」は存在します。 (varchar型何ですが、それがいけないと思い date型やdatetime型と変えてみましたがダメでした) 何とかソートしたいのですがどうすればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • create と join

    少し前にこれを使って連結したのを作成できたのですが 今回やったら、できませんでした・・・ === create table otamesi888 as select * from otamesi1 inner join otamesi2 on 1 = 1 こんな感じでできたツモリでした・・・ どの点がまずいのでしょうか? create も join も片方だとできるのですが・・・

  • テーブルを結合する構文はUNIONやJOINがありますが

    テーブルを結合する構文はUNIONやJOINがありますが この場合クエリー速度は1本のテーブルと複数のテーブルではどの程度 違うのでしょうか? また物理的に複数のテーブルを1つにしたい場合に何かいい方法は ないでしょうか。

    • ベストアンサー
    • MySQL
  • inner joinとwhereでの結合の違いは?

    お世話になります。 たとえば、テーブルが複数(この場合2つ)ある場合。 (1) test(カラム:table_id,table_name) (2) tester(カラム:table_id,table_name) 以下のクエリは条件的に select a.table_id, a.table_name from test a inner join tester b on a.table_id = b.table_id ************* select a.table_id, a.table_name from test a , tester b where a.table_id = b.table_id 同じですよね? パフォーマンス的にもjoinすることのメリットが判りません。

  • joinの場合のテーブル名の別名の使用方法

    select * from table1 a,table2 b where a.field1=b.field1; とできますが select * from table1 as a left join table2 as b on a.field1=b.field1; とできません。 joinの場合にテーブル名の別名を使う方法を教えてください

  • UNION ALLしたテーブルを個別に並べ変え

    table1、table2、table3というテーブルがあり このそれぞれをidというカラムで並び替えたものを結合するので考えました。 SELECT * FROM `table1` UNION ALL SELECT * FROM `table2` UNION ALL SELECT * FROM `table3` ORDER BY `id` にすると全てを結合したものを並び替えるので SELECT *, '1' AS tbl FROM `table1` UNION ALL SELECT *, '2' AS tbl FROM `table2` UNION ALL SELECT *, '3' AS tbl FROM `table3` ORDER BY `tbl`,`id` という風に書いてみました、結果としてはよさそうですが 方法としては間違ってないでしょうか? 他にいい方法があればアドバイスをお願いします。