gpt4 book ai didi

mysql - 在MySQL中,如何获得9个select结果的交集?

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

我正在编写sql代码。我遇到了一个障碍,就是SQL查询中的select语句太多了。最后我想得到 9 个选择结果的交集

我的sql代码与下面相同,只是1个select语句。 8个选择句子与仅搜索词不同,例如)霍乱、腹泻、发烧、呕吐、恶心等

首先选择句子。不要感到惊讶。该代码简单且重复。

 (SELECT code_co.code, code_co.disease_co, code_en.disease_en
FROM code_co
LEFT JOIN code_en ON code_en.code = code_co.code
LEFT JOIN note ON note.code = code_co.code
LEFT JOIN inclusion ON inclusion.code = code_co.code
LEFT JOIN exclusion ON exclusion.code = code_co.code
LEFT JOIN ds ON code_co.code = ds.code
LEFT JOIN tx ON code_co.code = tx.code
LEFT JOIN sx ON code_co.code = sx.code

WHERE
note LIKE CONCAT( '%', (
SELECT ds_word.ds_en
FROM ds_word
WHERE ds_co LIKE '%cholera%'
LIMIT 0 , 1
), '%' )
or
ds_content LIKE CONCAT( '%', (
SELECT ds_word.ds_en
FROM ds_word
WHERE ds_co LIKE '%cholera%'
LIMIT 0 , 1
), '%' )
...
inclusion LIKE CONCAT( '%', (
SELECT ds_word.ds_en
FROM ds_word
WHERE ds_co LIKE '%cholera%'
LIMIT 0 , 1
), '%' )
)

下面是在phpmyadmin上捕获的图片。

enter image description here真正有效的代码!第二个选择句与第一句相同,除了霍乱。霍乱是我的搜索词。这样我就有了9个select句子。我想得到交集,但是在MySQL中,我怎么关心?相交或减只能在 2 个句子中使用。 (对吗?)

(第一个选择句子)相交(第二句选择)相交(第三句选择)...这个方法对吗?

请帮助我。谢谢您的建议

最佳答案

您可以通过在 where 子句中使用 and 来进行“相交”。使用or相当于“联合”。

此外,您可以通过执行以下操作来简化表达式:

LEFT JOIN sx ON code_co.code = sx.code
CROSS JOIN (SELECT concat('%', ds_word.ds_en, '%') as pattern
FROM ds_word
WHERE ds_co LIKE '%cholera%'
LIMIT 0 , 1
) const
WHERE note LIKE const.pattern and
ds_content like const.pattern and
. . .

关于mysql - 在MySQL中,如何获得9个select结果的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21883743/

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