0

part_type_n別の列 ( (n の範囲は 1 ~ 54)) をTable1同じ列 ( id、プライマリ、オートインク) に結合しようとしていTable2ます。

スキーマ:

表1
==============
part_type_1
.
.
.
part_type_54



表2
=============
ID

私は明らかなクエリを試しました(phpが生成し、1から54までnをループします)、...の繰り返しのものを省略しました:

SELECT * FROM Table1 JOIN Table2 on (Table1.part_type_1=Table2.id), ..., (Table1.part_type_54=Table2.id)

次のエラーが表示されます。

1066 - テーブル/エイリアスが一意ではありません: 'Table2'

これら 2 つのテーブルを結合するにはどうすればよいですか?

4

3 に答える 3

0

54 個のテーブル エイリアスを使用してクエリを作成する代わりに、次のように一度テーブルに結合することを検討できます。

select ...
from Table1 t1
join Table2 t2
  on t2.id in (t1.part_type_1, t1.part_type_2, ... t1.part_type_54)
于 2013-10-13T09:02:10.567 に答える
0

1 つのテーブル列にすべて格納されているさまざまなカテゴリに一致する 1 つの行として、必要な結果を得ることができました。

クエリ

       SELECT cm3.*, xp.post_title,GROUP_CONCAT(DISTINCT sc.name) AS cate_list
       FROM `xld_posts` xp 
       JOIN course_map cm0 ON cm0.course_id = xp.ID
       JOIN course_map cm1 ON cm1.course_id = cm0.course_id  AND cm0.id = 3
       JOIN course_map cm2 ON cm2.course_id = cm1.course_id  AND cm1.id = 6
       JOIN course_map cm3 ON cm3.course_id = cm2.course_id  AND cm2.id = 11
       JOIN subject_category sc ON cm3.id = sc.id
       GROUP by post_title ORDER BY post_title

注: カテゴリ値 3、6、および 7 はフォーム sumbit から取得されます。したがって、フォームが 3 つ以上またはそれ以下の場合、クエリは動的に作成され、各テーブルを前のテーブルと結合する必要があります。

:)誰かが役に立つと感じたら幸せです。

于 2014-08-30T10:57:47.713 に答える