在mysql查询中的if语句?如果字段等于

时间:2018-01-25 12:27:02

标签: mysql sql

我有一个查询我的数据库,当前从名为feed的表中获取数据然后我得到了posterid并将其与我users表中的匹配用户ID一起加入。

基本上,我有两种类型的用户 - 1)人或2)公司/网络(表格中包含的信息称为networks

我的桌子看起来像这样(饲料)

id| posterid| post_content| type |

 1    9        Hello!        user

 2    10293    Meow!         Network

我的查询是

$feed= $this->db->query("SELECT *,
            users.*
    FROM (`feed`)
    LEFT JOIN users ON users.userID = feed.posterid

");

我的问题是 - 在查询中有没有办法检查类型,如果它的类型设置为user然后加入users表或者如果它的网络然后加入网络表呢?

不确定这是不是真的。

由于

1 个答案:

答案 0 :(得分:3)

您可以执行此操作,但需要列出所需的列。 SQL查询返回固定的列列表。类似的东西:

SELECT f.*, u.*, n.*
FROM feed f LEFT JOIN
     users u
     ON u.userID = f.posterid AND type = 'user' LEFT JOIN
     networks n
     ON n.networkID = f.posterid AND type = 'network;

“其他”表格中的列为NULL。您应该明确列出列。对于常见列,您可能需要使用COALESCE()