-1
SELECT * FROM chat JOIN users ON chat.user_id = users.id
在这里,我选择有用户的聊天消息,我也想选择其他没有用户的聊天消息(因此chat.user_id = 0),并为值为字段“登录”值对于那些未加入的行,“guest”如何在程序中没有任何额外的循环,只需一次执行mysql?Mysql如何为未连接的行设置值?
SELECT * FROM chat JOIN users ON chat.user_id = users.id
在这里,我选择有用户的聊天消息,我也想选择其他没有用户的聊天消息(因此chat.user_id = 0),并为值为字段“登录”值对于那些未加入的行,“guest”如何在程序中没有任何额外的循环,只需一次执行mysql?Mysql如何为未连接的行设置值?
喜欢的东西:
SELECT c.*,
COALESCE(u.login,'guest') login
/** other user fields **/
FROM chat c
LEFT JOIN users u
ON u.id = c.user_id
我仍然但是登记的客人临时用户,这样的消息可以被追踪到至少对某些责任的会话。
如果不是,请使用NULL
而不是0
对于没有用户。这样您仍然可以使用外键。
好吧,添加一个谓词并改变'JOIN'类型。我极力鼓励你回到SQL基础知识。 – Kermit 2014-09-18 15:40:54
@Kermit固定请检查问题,这只是一个打字错误 – DoublePudge 2014-09-18 15:41:19
对于初学者来说,这个查询是完全无效的。 – mariobgr 2014-09-18 15:42:27