Mysqli - 与或

标签 mysql

我一直在尝试让我的数据库显示我的联系人。但其他用户可以授予人们访问其联系人的权限(这全部存储在 tblaccess 中)

我尝试使用这个sql

SELECT * 
FROM tblcontacts, tblaccess
WHERE (
      tblaccess.user =1
      AND tblaccess.contact = contactID
)
OR tblcontacts.userid =1

但只有当 tblaccess 有一行时,它才会返回结果。

条件是 if tblcontacts.userid <> 1 然后检查 tblaccess.user = 1 是否

提前致谢

最佳答案

这是我理解你的问题的方式。您需要 userid = 1 的所有联系人,除非 tblaccess 中有记录。如果有这样的记录,那么user列必须为1。

以下查询实现了这一点:

SELECT * 
FROM tblcontacts c left outer join
     tblaccess a
     on a.contact = c.contactID 
where c.userid = 1 and
      (a.concatId is NULL or
       a.user = 1
      );

关于Mysqli - 与或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584123/

相关文章:

php - 基于日期的 LEFT JOIN 变体

php - mysql/php 将 csv 导入表中,并在分隔符内包含括号

mysql - 如果存在,MySQL 中的重复行

mysql - 当 log_bin 关闭时删除 log-bin 文件

php - 尝试在 mysql 查询中使用多个 WHERE 命令 [不工作]

mysql - 在mysql中通过key查找json

php - laravel 7 在注册表中添加 radio

c# - 如果我有一个正弦表,我应该在唤醒时将整个表查询到内存中吗?

php - mytheme/update.php 中的 wordpress 查询

mysql - 如何在表中插入计算的 SUM