sql >> データベース >  >> RDS >> Mysql

SQLテーブルに複数の選択肢の値を保存するにはどうすればよいですか?テーブルはどうあるべきですか?

    3つのテーブルを実装する必要があります:

        CREATE TABLE customer (
        customer_id int - Autoincrement,
        customer_name varchar(100)
        )
    
        CREATE TABLE icecream (
        icecream_id int - Autoincrement,
        flavor varchar(100)
        )
    
        CREATE TABLE cust_flavors (
        customer_id int,
        icecream_id int,
        preference int
        )
    
    

    cust_flavors 表には、各顧客が行うすべての選択が含まれています。顧客の選択を一覧表示するには、次を使用します:

        SELECT c.customer_name, i.flavor, cf.preference 
            FROM customer c LEFT JOIN cust_flavors cf
            ON c.customer_id = cf.customer_id
            LEFT JOIN icecream  i
            ON cf.icecream_id = i.icecream_id
          WHERE c.customer_id = @customer
          ORDER BY cf.preference
    
    

    設定 フレーバーに割り当てられる優先順位がある場合は、列が使用されます。つまり、顧客はブルーベリーよりもバニラを好みます(それを知ることが重要な場合)。



    1. カウントと注文

    2. MySQL乗算クエリ

    3. UTF8文字列のMD5ハッシュを計算します

    4. SQLServer-行をコンマ区切りのリストに結合します