2

を使用しています。リストmysql 5.5を使用した左結合クエリは 次のとおりです。literal

select tbl1.*, details.* 
from ('a', 'b', 'c'... 300+ elements) as 'tbl1' 
left join details
on 
details.id=tbl1.id

しかし、うまくいきません!

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''a','b')' at line 1

これlistをテーブルにする方法は??

4

3 に答える 3

6

ユニオンを使う

select tbl1.*, details.* 
from (select 'a'as id
      union
      select 'b' as id
      union
      select 'c' as id
      union
      ...300) as tbl1
left join details
on 
details.id=tbl1.id

このフィドルロジックを参照してください

Subqueryを使用する代わりに、最初に次のようにテーブルtbl1を作成できます。

create table tbl1
(
id varchar(1)
)

insert into tbl1
select 'a' as id
union 
select 'b' as id
union 
select 'c' as id
....300

テーブル tbl1を使用できるようになりましたjoin

select tbl1.*, details.* 
from 'tbl1' 
left join details
on 
details.id=tbl1.id
于 2013-04-26T03:40:55.247 に答える
0

サブクエリに選択がありませんか?

select tbl1.*, details.* 
    from (select 'a', 'b', 'c'... 300+ elements) as 'tbl1' 
    left join details
    on 
    details.id=tbl1.id

しかし、あなたの左結合が何をすべきか理解できません

[編集] 結合用の一時テーブルを作成しますか?

CREATE TEMPORARY TABLE TempTable ( tempcol varchar(100) ) ENGINE=heap; 

insert into TempTable
values ('a'), ('b'), ('c'), 300+ elements);

select TempTable.*, details.*
from TempTable
left join details on details.id = TempTable.tempcol;
于 2013-04-26T03:25:27.577 に答える
-1
select tbl1.*, details.* 
from (select 'a', 'b', 'c' as id) as tbl1
left join details
on 
details.id=tbl1.id
于 2013-04-26T03:28:44.970 に答える