我有一个查询我的数据库,当前从名为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表或者如果它的网络然后加入网络表呢?
不确定这是不是真的。
由于
答案 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()
。