我正在尝试解决我的应用程序上的问题,我有此查询来尝试使其正常工作。
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/