Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да запазя стойности с множество избори в SQL-таблица? Как трябва да изглежда масата?

Трябва да внедрите три таблици:

    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

preference ще се използва колона, ако има приоритет, който да бъде присвоен на ароматите. Тоест клиентът харесва Ванилия повече от Боровинка (ако това е важно да се знае).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL максимално използване на паметта

  2. PHP формуляри не вмъкват данни в MySQL

  3. Извикване на изглед на база данни в Yii с помощта на Active Record

  4. MySQL group_concat() подреждане по стойности на изявлението case

  5. Codeigniter, Join и Case When Query