gpt4 book ai didi

mysql - 如何执行受同一个表中的值限制的 mysql 查询?

转载 作者:行者123 更新时间:2023-11-30 23:15:52 24 4
gpt4 key购买 nike

我有一个表“model_values”,如下所示:

+----+------------+-------------+----------------+------------+
| id | value_post | value_model | value_property | value_data |
+----+------------+-------------+----------------+------------+
| 1 | 1 | 39 | 1 | ValueA |
| 2 | 1 | 39 | 2 | Value1 |
| 3 | 1 | 39 | 3 | 2013 |
| 4 | 2 | 39 | 1 | ValueA |
| 5 | 2 | 39 | 2 | Value2 |
| 6 | 2 | 39 | 3 | 2012 |
| 7 | 3 | 39 | 1 | ValueB |
| 8 | 3 | 39 | 2 | Value1 |
| 9 | 3 | 39 | 3 | 2013 |
| 10 | 4 | 30 | 1 | ValueA |
| 11 | 4 | 30 | 2 | Value2 |
| 12 | 4 | 30 | 3 | 2013 |
+----+------------+-------------+----------------+------------+

我正在尝试创建一组下拉菜单,根据以下查询显示 value_property 的 1 和 2 的 value_data:

SELECT *
FROM model_values
INNER JOIN models
ON model_values.value_model = models.id
INNER JOIN properties
ON model_values.value_property = properties.id
WHERE model_values.value_property = {$safe_property} && models.id = {$safe_model_id}
GROUP BY model_values.value_data

但我希望下拉菜单也受 value_property 3(年份)的限制。因此,用户将首先选择 2013 年,然后会出现两个下拉列表以供从以下选项中进行选择:

Select 1: ValueA/ValueB
Select 2: Value1

或者如果他们先选择 2012,他们会看到:

Select 1: ValueA
Select 2: Value2

我尝试提出如下查询:

WHERE model_values.value_property = 1 && models.id = 39 && model_values.value_data = 2013 

但显然这行不通,因为 value_property 1 永远不会有 2013 年的 value_data。

或者像这样的子查询:

WHERE model_values.value_property = 1 && models.id = 39 && model_values.value_data = (
SELECT model_values.value_data
FROM model_values
WHERE model_values.value_data = 2013
)

但这会返回不止 1 行。

这样的查询可能吗?

最佳答案

你的最后一次尝试几乎是正确的,只是你的子查询返回了超过 1 行

替换这个

     && model_values.value_data = (

通过

 && model_values.value_data IN (

我看不到它是否正确,因为你没有提供模型表

关于mysql - 如何执行受同一个表中的值限制的 mysql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17900779/

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