私はテーブルbaskets
,fruits
、basket_fruits
(参加テーブル:basket_id-fruit_id
)を持っています。ポジションに参加
私はバスケットに各果実の位置を返すことができますどのように私はなりますので、何か
+---------------------------------------+
| basket_id | fruit_id | fruit_position |
|---------------------------------------|
| 1 | 2 | 1 |
| 1 | 5 | 2 |
+---------------------------------------+
のようなフルーツの位置が返された結合テーブル内の行の数だけ(それが列ではありません)です。より速く(
SELECT basket_id, fruit_id,
(
SELECT COUNT(*)
FROM basket_fruit bfi
WHERE bfi.basket_id = bf.basket_id
AND bfi.fruit_id <= bf.fruit_id
) AS fruit_position
FROM basket_fruit bf
WHERE basket_id = 1
またはセッション変数を使用しますが、文書化されておらず、将来のリリースで破損する可能性が実装の詳細に依存しています:
Schema:
baskets: id, title
fruits: id, title
basket_fruits: id, basket_id, fruit_id
あなたは、スキーマを表示することができますか? – Starx