0

私がやろうとしていること:

orders テーブルから ID を使用して製品の名前を取得したいのですが、私の場合、製品を 3 つの異なるテーブルに保存しています。すなわち、料理、飲み物、その他。

問題:

したがって、問題は注文テーブルにあり、「dirnks、dish、others」のようなタイプ(どのような製品か)を入れました。製品が任意のテーブル(料理、飲み物)にある場合、製品の名前を取得するにはどうすればよいですか,その他)

私が欲しいもの:

可能かどうかはわかりませんが、下のクエリが何であるかを誰かが知ることができれば、IFステートメントでselectステートメントを使用するにはどうすればよいですか

    SELECT product_id,type,quantity ,
     ( IF(type='Drinks)
       THEN
       (SELECT drink_name FROM drinks WHERE drink_id=product_id) 
       ELSE IF (type='Dish)
       THEN
       (SELECT dish_name FROM dish WHERE dish_id=product_id) 
    )  
      as drink_name
    FROM order_product

   WHERE shop_id='JSMMSK730'

これは可能ですか?

4

2 に答える 2

0

以下の構文を試してください:

SELECT * FROM 
(
    SELECT product_id, product_name from dish
    UNION
    SELECT product_id, product_name from drinks
    UNION
    SELECT product_id, product_name from others) as product, order
)
WHERE product.product_id = order.order_id
于 2013-06-27T09:33:13.793 に答える