gpt4 book ai didi

Mysql 选择带有条件逻辑

转载 作者:行者123 更新时间:2023-11-29 08:50:37 26 4
gpt4 key购买 nike

我需要以下方面的帮助:
(我的描述可能看起来很奇怪,下面的示例图片:)

为了生成图表,我想根据表单生成的查询选择“天”(在此阶段,查询将仅包含“出发地”和“目的地”国家/地区)。

我的问题是,我不知道如何使用条件逻辑进行选择,因此它从具有匹配的“从”和“到”的每个“item_id”中选择“天”。

(好吧,另一个问题是我不知道任何好的关键字或实际上如何调用它,所以请原谅我,我只是做了一些盲目的谷歌搜索并试图在这里找到类似的问题)

example

最佳答案

SELECT days.meta_value
FROM tableName AS from_country,
tableName AS to_country,
tableName AS days
WHERE from_country.item_id = to_country.item_id
AND from_country.item_id = days.item_id
AND from_country.field_id = 90
AND to_country.field_id = 93
AND days.field_id = 251

如果您想按 from_country.meta_value 或类似条件进行过滤,您可以添加更多限制。并且您应该将 tableName 替换为表的实际名称。

from_countryto_countrydays 视为指向表中行的三个不同指针,或者从关系中获取值的不同变量。您希望它们全部三个描述同一个项目,并且您还希望它们每个都引用与其名称关联的字段。这会导致上述条件。

您甚至可以创建一个 View ,以便像访问正确设计的表一样访问这个设计糟糕的表:

CREATE VIEW viewName AS
SELECT item.item_id AS item_id,
from_country.meta_value AS from_country,
to_country.meta_value AS to_country,
days.meta_value AS days
FROM (SELECT DISTINCT item_id FROM tableName) AS item
LEFT JOIN tableName AS from_country
ON (from_country.item_id = item.item_id AND
from_country.field_id = 90)
LEFT JOIN tableName AS to_country
ON (to_country.item_id = item.item_id AND
to_country.field_id = 93)
LEFT JOIN tableName AS days
ON (days.item_id = item.item_id AND
days.field_id = 251)

这将创建一个包含四列的 View ,您可以从中简单地选择:

SELECT days FROM viewName WHERE from_country LIKE 'A%'

或任何您想要选择的内容。请注意,由于左连接,某些项目的缺失值将导致 NULL 值。这与上面的查询相反,上面的查询将省略任何未指定所有三个值的项目。使用更适合您情况的任何内容。

关于Mysql 选择带有条件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332428/

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