gpt4 book ai didi

php - SQL 多选同表同列进行数据过滤

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

我知道我以前做过这个,但是有一段时间没做过多少 SQL。

我有一个名为 lead_detail 的表,它包含以下列:idlead_idform_idfield_number

我正在尝试获取结果然后过滤它们。

因此,最初,我获得了对特定问题有特定答案的所有潜在客户 ID。

假设第一个过滤器是我想要对“你喜欢鸡肉”的问题回答"is"的所有结果(field_number of 4)。

$leadIds = query(SELECT lead_id FROM lead_detail WHERE field_number = '4' AND value = 'yes' AND form_id = '1')
$leadIds = implode(', ', $leadIds);

然后,我可以通过以下方式获得适当的过滤数据

SELECT * FROM lead_detail WHERE form_id = '1' and lead_id IN ($leadIds)

这非常有效。

如果我想添加第二个过滤器,我需要对同一查询中的相同列执行两次查询。我在想我需要使用表别名或某些子选择进行某种连接,但不记得如何进行。

因此,如果我需要知道谁对“你喜欢鸡肉”的问题回答"is"以及谁对“你的年龄”回答“18-24”,我将如何获得适当的 $leadIds?

它会像

的组合
SELECT lead_id FROM lead_detail WHERE field_number = '4' AND value = 'yes' AND form_id = '1'
AND
SELECT lead_id FROM lead_detail WHERE field_number = '5' AND value = '18-24' AND form_id = '1'

最佳答案

内部连接适用于此:

SELECT DISTINCT(ld1.lead_id)
FROM lead_detail ld1
INNER JOIN lead_detail ld2 ON (ld1.lead_id = ld2.lead_id)
WHERE ld1.field_number = '4' AND ld1.value = 'yes' AND ld1.form_id = '1'
AND ld2.field_number = '5' AND ld2.value = '18-24' AND ld2.form_id = '1'

然而,可能有更简洁的解决方案。

关于php - SQL 多选同表同列进行数据过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633618/

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