php - MYSQL IF 语句到不同的 WHERE 子句

标签 php mysql sql

我正在尝试解决我的应用程序上的问题,我有此查询来尝试使其正常工作。

SELECT * FROM articles
(IF articles.type = 1, INNER JOIN members ON members.id_member = articles.author_id,
INNER JOIN company ON company.id_company = articles.author_id) AS user
WHERE articles.tipe = '1' AND  user = '1';

我有一个发布文章的系统,但同一用户可以以他的名字或他创建的公司的名义发布文章,所以,我想做的是,如果articles.tipe是类型1,那么这篇文章是他的公司发表的,如果不是的话,它是类型0,那么它是他以自己的名义发布的,如果我只使用其中1个,它们会混合在一起,我尝试了不同的方法但没有其中一些似乎对我有用,有人可以帮忙吗?

最佳答案

要通过基于文章类型的条件联接获取article_type=0 和article_type=1 的记录,查询如下:

select * from (

  select article.type,article.name,member.name as user from articles INNER JOIN members                         ON members.id_member = articles.author_id where article_type=0

 UNION ALL

 select article.type,article.name,company.name as user from articles INNER JOIN members       ON members.id_member = articles.author_id INNER JOIN company ON company.id_company = articles.author_id  where article_type=1

) 作为 tmptbl;

关于php - MYSQL IF 语句到不同的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350092/

相关文章:

php - 如何设置 php 脚本来处理 2 个表

javascript - PHP - JSON 数组到 javascript 数据表库

mysql - 错误: Cannot add foreign key constraint on CREATE TABLE

mysql - 在 "INSERT ON"子句中使用用户变量

mysql - 使用递增的文本值更新表中的所有行

sql - 如何将数据从生产迁移到开发但又打乱敏感数据?

php - 在 PHP 中验证 URL

php - 直接替换 mb_substr?

php - Google map 商店定位器 - SQL 语句的 PHP/MySQL 错误

java - 如果 select 语句包含 DATE 类型的列,则聚合 SQL 查询不起作用