Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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/8/selenium/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
Mysql 复杂选择查询_Mysql_Database - Fatal编程技术网

Mysql 复杂选择查询

Mysql 复杂选择查询,mysql,database,Mysql,Database,我想要像fb新闻提要这样的实现,我做了以下事情,但我不知道应该用什么查询来检索这种数据 我有这些桌子 表格:帖子 此表用于存储用户状态 post_id是AI和primary username是用户的userid 共享是可视性控制,如果它是公共的,每个人都可以共享,或者如果它与用户列表共享,则共享字段包含该列表的共享id +--------------+---------------+ | col_name | col_type | +--------------|-------

我想要像fb新闻提要这样的实现,我做了以下事情,但我不知道应该用什么查询来检索这种数据

我有这些桌子

表格:帖子 此表用于存储用户状态 post_id是AI和primary username是用户的userid 共享是可视性控制,如果它是公共的,每个人都可以共享,或者如果它与用户列表共享,则共享字段包含该列表的共享id

+--------------+---------------+
| col_name     | col_type      |
+--------------|---------------+
| post_id      | INT(11)       |
+--------------|---------------+
| username     |  VARCHAR(50)  |
+--------------|---------------+
| share        |  VARCHAR(50)  |
+--------------|---------------+
| content      |  TEXT         |
+--------------|---------------+
表格:共享 此表存储用户列表 共享id为AI和主 share\u name是共享列表的名称

+--------------+---------------+
| col_name     | col_type      |
+--------------|---------------+
| share_id     | INT(11)       |
+--------------|---------------+
| username     |  VARCHAR(50)  |
+--------------|---------------+
| share_name   |  VARCHAR(50)  |
+--------------|---------------+
表格:共享成员 此表是
share
的子表,用于存储共享成员列表

+--------------+---------------+
| col_name     | col_type      |
+--------------|---------------+
| smid         | INT(11)       |
+--------------|---------------+
| share_id     |  IMT(11)      |
+--------------|---------------+
| username     |  VARCHAR(50)  |
+--------------|---------------+
我想获取允许我查看的所有用户的数据。包括public

编辑:

我在表posts中又添加了一列

然后尝试了这个查询

SELECT p.*, CASE p.share_type when 'public' then "1" when 'list' then if((select count(*) FROM share_member WHERE username='pratik' AND share_id=share)>="1") then "1" END AS allowed FROM posts p

选择*FROM
posts
其中IF(share=“public”,1,0)=1此查询,但这还不够您已经用三个不同的数据库引擎对此进行了标记,引擎的选择将影响答案。你到底在用哪一个?类似的?