Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php (我将使用不同的变量设置多次测试它一段时间,只是想听听您的意见)@Maverick IMHO它在您的数据集上运行得很好,但要确保您需要彻底测试它。现在它所做的是为sub_类型分配一个数字。要订阅,您必须有一行的值为'all'+1和(或)一行的值为'sub'_Php_Mysql_Schema - Fatal编程技术网

Php (我将使用不同的变量设置多次测试它一段时间,只是想听听您的意见)@Maverick IMHO它在您的数据集上运行得很好,但要确保您需要彻底测试它。现在它所做的是为sub_类型分配一个数字。要订阅,您必须有一行的值为'all'+1和(或)一行的值为'sub'

Php (我将使用不同的变量设置多次测试它一段时间,只是想听听您的意见)@Maverick IMHO它在您的数据集上运行得很好,但要确保您需要彻底测试它。现在它所做的是为sub_类型分配一个数字。要订阅,您必须有一行的值为'all'+1和(或)一行的值为'sub',php,mysql,schema,Php,Mysql,Schema,(我将使用不同的变量设置多次测试它一段时间,只是想听听您的意见)@Maverick IMHO它在您的数据集上运行得很好,但要确保您需要彻底测试它。现在它所做的是为sub_类型分配一个数字。要订阅,您必须有一行的值为'all'+1和(或)一行的值为'sub'+1(可能是2)。现在,如果您取消订阅,我们将分配-2。然后我们计算一个和,看看它是否大于0,然后就可以了。如果我喜欢你简单的逻辑。我会接受你的答案并彻底测试它。如果情况不一样,我会用小提琴向你汇报。感谢您的快速解决方案和解释! subscri


(我将使用不同的变量设置多次测试它一段时间,只是想听听您的意见)@Maverick IMHO它在您的数据集上运行得很好,但要确保您需要彻底测试它。现在它所做的是为sub_类型分配一个数字。要订阅,您必须有一行的值为'all'+1和(或)一行的值为'sub'+1(可能是2)。现在,如果您取消订阅,我们将分配-2。然后我们计算一个和,看看它是否大于0,然后就可以了。如果我喜欢你简单的逻辑。我会接受你的答案并彻底测试它。如果情况不一样,我会用小提琴向你汇报。感谢您的快速解决方案和解释!
subscribed_courses (Table with all member chosen resort services)
teacher_id  subscriber_id  course_id    sub_type
    4            10            0          all
    4            10            1         unsub
    4            10            2         unsub
    4            11            4          sub
    4            12            0          all
SELECT DISTINCT subscriber_id 
FROM subscribed_courses
WHERE teacher_id='4'
//AND #1 (sub_type='sub' AND course_id='2') //individually subscribed
      #2 ((sub_type='all' AND course_id='0') AND (sub_type='unsub' AND course_id<>'2')) //subscribed to all, ensure subscriber didn't unsub from this course [all subscribed 1 row + more row(s) for unsub]
      #3 (sub_type='all' AND course_id='0') //all subscribed [if this is one row only for subscriber]
SELECT DISTINCT subscriber_id 
FROM subscribed_courses
WHERE teacher_id='4'
AND ((sub_type='sub' AND course_id='2')
union 
SELECT DISTINCT subscriber_id 
FROM subscribed_courses
WHERE teacher_id='4'
AND ((sub_type='all' AND course_id='0') AND (sub_type='unsub' AND course_id<>'2')) 
union
SELECT DISTINCT subscriber_id 
FROM subscribed_courses
WHERE teacher_id='4'
AND (sub_type='all' AND course_id='0'))
SELECT subscriber_id
  FROM subscribed_courses
 WHERE teacher_id = 4
   AND course_id IN(0, 2)
 GROUP BY teacher_id, subscriber_id
HAVING SUM(       
       CASE WHEN sub_type = 'all'   THEN 1  ELSE 0  END 
     + CASE WHEN sub_type = 'sub'   THEN 1  ELSE 0  END 
     + CASE WHEN sub_type = 'unsub' THEN -2 ELSE 0  END) > 0
| SUBSCRIBER_ID |
-----------------
|            12 |