基于字段值的MySql连接表
是否可以这样做:基于字段值的MySql连接表,mysql,join,Mysql,Join,是否可以这样做: SELECT p.*, u.* FROM posts AS p IF(p.status = 1) LEFT JOIN users AS u ON u.id = p.user_id ELSE LEFT JOIN pusers AS u ON u.id = p.user_id WHERE p.id = 10 ; 根据post状态为真/假,加入用户/pusers表否,但您可以这样做: SELECT p.*,
SELECT
p.*, u.*
FROM
posts AS p
IF(p.status = 1)
LEFT JOIN users AS u
ON u.id = p.user_id
ELSE
LEFT JOIN pusers AS u
ON u.id = p.user_id
WHERE p.id = 10 ;
根据post状态为真/假,加入用户/pusers表否,但您可以这样做:
SELECT p.*,
(case when p.status = 1 then u.col1 else pu.col1 end) as col1
FROM posts p LEFT JOIN
users u
ON u.id = p.user_id and p.status = 1 LEFT JOIN
pusers AS pu
ON pu.id = p.user_id and p.status <> 1
WHERE p.id = 10 ;
选择p.*,
(当p.status=1时,则u.col1 else pu.col1 end)作为col1
从立柱p向左连接
用户u
ON u.id=p.user\u id和p.status=1左连接
pusers AS pu
在pu.id=p.user\u id和p.status 1上
其中p.id=10;
换句话说,您可以根据条件联接两个表并使用表中的值。谢谢您的回答,但我得到了“SQLSTATE[42S22]:找不到列:1054未知列“field list”[代码:42S22]”对不起,我的错。我只需要一个有效的列名。它工作得很好。谢谢