Php 显示具有某些特殊条件行的所有行

Php 显示具有某些特殊条件行的所有行,php,mysql,Php,Mysql,我有两张桌子: 项目 股票 其中两个表中的created\u由列所创建的是指用户表的ID 我正在尝试获取由用户获取的项目行。如果用户创建了一个is_private行,则该行应添加到结果中 我希望结果根据用户访问信息的情况而灵活 例如: 如果用户id:3正在访问上述信息: item_id created_by stock_id 1 1 4 3 3 8 item_id

我有两张桌子:

项目 股票 其中两个表中的
created\u由
列所创建的是指
用户
表的
ID

我正在尝试获取由用户获取的项目行。如果用户创建了一个
is_private
行,则该行应添加到结果中

我希望结果根据用户访问信息的情况而灵活

例如: 如果
用户id:3
正在访问上述信息

item_id       created_by    stock_id
   1             1             4
   3             3             8
item_id       created_by    stock_id
   1             1             4
   2             2             5
   3             3             8
如果
用户id:2
正在访问上述信息

item_id       created_by    stock_id
   1             1             4
   3             3             8
item_id       created_by    stock_id
   1             1             4
   2             2             5
   3             3             8
在上面,我得到了三行,因为
用户id:2
创建了一个
是私有的:1
(如果您检查
表)

我尝试了以下方法:

SELECT 
   item_id, created_by, stock_id
FROM items
^显然,在上面尝试过的查询中,我不知道如何执行此操作。

您可以尝试以下操作:

SELECT item_id,
       created_by,
       stock_id
FROM items 
WHERE is_private = 0 OR
      created_by = :user_id

我很难理解决定预期输出的逻辑。@TimBiegeleisen到目前为止我所理解的是:具有
的记录是\u private=0
的记录对任何人都是公开的。因此,特定用户只能访问那些公共记录+他创建的记录。@TimBiegeleisen基于查询的结果行应取决于访问信息的用户。如果一行有
是\u private:1
,并且该行是由访问信息的用户创建的,那么该行也应该在结果行中可见,否则它不应该可见。@TimBiegeleisen,也许格林先生是从非SQL主题中的问题中得到他的代表。@BillKarwin一个很好的解释。
选择项\u id,由,股票id
看起来比
SELECT*
好。它总是@RohanKumar:)。顺便说一句,蒂姆是这个答案的事件监听器:p。谢谢蒂姆!刚刚意识到这比我在这里介绍的要复杂得多。无论如何,谢谢:)