gpt4 book ai didi

MYSQL(WHERE - IF - SELECT/IN 语句)

转载 作者:行者123 更新时间:2023-11-29 11:19:57 24 4
gpt4 key购买 nike

我正在尝试设置我的代码,为我的销售代表提供控制面板。通过我的控制面板,我可以根据客户购买的商品来控制销售代表调用哪些客户。

即如果我在销售代表 01 的控制面板中指定“汽车”,他只会调用购买“汽车”类别玩具的客户。我的“汽车”类别中的所有不同玩具都存储在名为“车辆”的单独文件中。

我的文件如下:

customer (File)
+--------+-----------+--------+
| name | phone | toy |
+--------+-----------+--------+
| Gail | 777-1234 | Truck |
| June | 777-1235 | Doll |
| Mary | 777-1236 | Racer |
| Bill | 777-1237 | Ball |
| Jon | 777-1238 | Jeep |
+--------+-----------+--------+



control_panel (File)
+----------+--------+
| user | desc |
+----------+--------+
| sales_01 | Cars |
+----------+--------|


vehicles (File)
+---------+
+ item |
+---------+
| Truck |
| Racer |
| Jeep |
+---------+

在尝试测试此代码时,我的这部分代码可以正常工作。

select 
c.name , c.phone
FROM
customer c
WHERE
c.toy IN (
SELECT
v.item
FROM
vehicles v
)

现在,我正在尝试调整我的 WHERE 语句,以便仅当我在用户“sales_01”的控制面板屏幕中选择“汽车”时,购买汽车的客户才会仅显示在用户“sales_01”的调用屏幕上.

这是我一直在测试但无法正常工作的一些代码的示例。

SELECT   
c.name , c.phone
FROM
customer c , control_panel p
WHERE
(IF p.desc = "Cars"
THEN (c.toy
IN (SELECT
v.item
FROM
vehicles v)
)
END)

感谢任何帮助。谢谢。

最佳答案

首先,我建议您通过向 vehicles 表添加字段 category 来重构架构。这将使您的 control_panel客户 之间建立适当的关系。在这种情况下,您只需执行SELECT c.name, c.phone FROM customer c LEFT OUTER JOIN cars v ON c.toy = v.items WHERE v.category = 'Cars'。我很想添加其他建议,但我觉得你想要一些现在就可以工作的东西。另外,我现在没有太多空闲时间。希望这会有所帮助。

关于MYSQL(WHERE - IF - SELECT/IN 语句),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39086869/

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