sqlite3如何有条件地更改联接表中的字段(使用CASE..END with JOIN)?

sqlite3如何有条件地更改联接表中的字段(使用CASE..END with JOIN)?,sqlite,join,case,Sqlite,Join,Case,我有两个表“object”和“list”通过以下方式连接: $cmd="SELECT * FROM object LEFT JOIN list ON (object.id=list.imgref AND list.persoon={$_SESSION['id']})" ." WHERE (owner=0 OR owner={$_SESSION['id']}) "; 这是我想要的。 例如: 现在,在生成的组合表中,我希望在sqlite3 speak中将字段“object.cat”有条

我有两个表“object”和“list”
通过以下方式连接:

$cmd="SELECT *  FROM object LEFT JOIN list ON (object.id=list.imgref AND list.persoon={$_SESSION['id']})"
    ." WHERE (owner=0 OR owner={$_SESSION['id']})  ";
这是我想要的。 例如:

现在,在生成的组合表中,我希望在
sqlite3 speak
中将字段“object.cat”有条件地更改为“list.catlist”的值:

当list.persoon={$\u SESSION['id']}然后object.cat=list.catlist结束时

例如(注意栏“cat”):

不幸的是,以下语句给出了一个错误:

$cmd="SELECT *  FROM object LEFT JOIN list ON (object.id=list.imgref AND list.persoon={$_SESSION['id']})"
    ." CASE WHEN list.persoon={$_SESSION['id']} THEN object.cat=list.catlist END"
    ." WHERE (owner=0 OR owner={$_SESSION['id']})  ";

如果您能帮我找到正确的公式,我将不胜感激。

必须在
选择
列表中显示
大小写
表达式:

SELECT o.id,
  CASE WHEN l.persoon={$_SESSION['id']} THEN l.catlist ELSE o.cat END AS cat,
  o.owner, l.* 
FROM object o LEFT JOIN list l 
ON (o.id=l.imgref AND l.persoon={$_SESSION['id']})
WHERE (o.owner=0 OR o.owner={$_SESSION['id']})
请参阅。
结果(对于
{$\u会话['id']}=2
):


CASE
表达式必须出现在
SELECT
列表中:

SELECT o.id,
  CASE WHEN l.persoon={$_SESSION['id']} THEN l.catlist ELSE o.cat END AS cat,
  o.owner, l.* 
FROM object o LEFT JOIN list l 
ON (o.id=l.imgref AND l.persoon={$_SESSION['id']})
WHERE (o.owner=0 OR o.owner={$_SESSION['id']})
请参阅。
结果(对于
{$\u会话['id']}=2
):


我不确定您真正的意思/想要什么。为清楚起见,请回答问题并添加表格定义(如
创建表格
语句)、样本数据(如
插入到
语句中)以及该样本数据的所需结果。我不确定您真正的意思/想要什么。为清楚起见,请回答问题并添加表格定义(作为
创建表
语句),样本数据(作为
插入到
语句中)以及样本数据的预期结果。它有效!!非常感谢,forpas,感谢您的帮助更正………EkeI不知道这一点,但我以后会这样做。再次感谢…EkeIt有效!!非常感谢,forpas,感谢您的帮助更正………EkeI不知道这一点,但我以后会这样做。再次感谢。。勉强维持
SELECT o.id,
  CASE WHEN l.persoon={$_SESSION['id']} THEN l.catlist ELSE o.cat END AS cat,
  o.owner, l.* 
FROM object o LEFT JOIN list l 
ON (o.id=l.imgref AND l.persoon={$_SESSION['id']})
WHERE (o.owner=0 OR o.owner={$_SESSION['id']})
| id  | cat | owner | lid | imgref | catlist | persoon |
| --- | --- | ----- | --- | ------ | ------- | ------- |
| 1   | a   | 0     |     |        |         |         |
| 2   | AA  | 0     | 1   | 2      | AA      | 2       |
| 3   | BB  | 0     | 2   | 3      | BB      | 2       |
| 4   | CC  | 2     | 3   | 4      | CC      | 2       |
| 6   | f   | 0     |     |        |         |         |