gpt4 book ai didi

使用 if-else 语句的 MYSQL 查询

转载 作者:可可西里 更新时间:2023-11-01 08:39:46 26 4
gpt4 key购买 nike

您好,我有下图所示的表结构

enter image description here

我正在尝试在 mysql 中编写查询以获取

来自 customer 表或 vendortable 的 name,address,mono 取决于来自 transportsticker 表的 whoseid 值

我试过

 SELECT transportsticker.* ,AA.name,AA.address,AA.mono FROM transportsticker INNER JOIN (case when (transportsticker.whoseid='vendor') then (vendortable) else (customertable) end) AA   ON AA.id=transportsticker.vorcid AND transportsticker.id=1

但是它给出了语法错误。谁能帮帮我……?

最佳答案

CASE 在 SQL 中是一个表达式,不能像过程语言那样用于控制执行流。

您可以将 LEFT JOINCOALESCE 一起使用:

SELECT t.*, 
COALESCE(c.name, v.name),
COALESCE(c.address, v.address),
COALESCE(c.mono, v.mono)
FROM transportsticker AS t
LEFT JOIN customertable AS c
ON t.whoseid='customer' AND c.id=t.vorcid
LEFT JOIN vendortable AS v
ON t.whoseid='vendor' AND v.id=t.vorcid
WHERE t.id=1

关于使用 if-else 语句的 MYSQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37788304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com