2011-06-08 9 views
2

私は以下のことを理解することができません...確かに可能ですが、構文エラーが間違っています。 ..変数にいくつかのidsを選択し、それをINで使用する構文は

/*pseudo*/ 
set @ids = select id from table_a limit 1,10; 
select * from table_b where table_a_id in (@ids); 

私は()内での選択を置くだろうが、MySQLは、それは限界があり、INに副選択を行うことを望んでいないと言います。事前

おかげ

答えて

4

あなたがこれを行うことができます:

select table_b.* 
from table_b 
join (select id from table_a limit 1,10) As table_a 
    on table_b.table_a_id = table_a.id 
+0

3番目の行に「AS table_a」があると思いますか? – joakimdahlstrom

+0

@joakimdahlstrom:はい、ありがとうございます。 – manji

+0

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

1
select * from table_b where table_a_id in (select id from @ids); 
1

あなたが派生テーブルに参加することによってこれを行うことができるはず。

SELECT 
    table_b.id, 
    table_b.otherfield 
FROM table_b 
    JOIN (SELECT id FROM table_a LIMIT 1,10) a_limit ON table_b.table_a_id = a_limit.id 
関連する問題