gpt4 book ai didi

mysql - 如何进一步过滤 SELECT 查询的结果?

转载 作者:行者123 更新时间:2023-11-29 06:30:37 25 4
gpt4 key购买 nike

好的,我有这个简单的 Mysql 查询:

SELECT * 
FROM student
LEFT JOIN student_state ON student.student_id = student_state.student_id_fk
WHERE student_surname LIKE '%XXX%'
OR student_lastname LIKE '%XXX%'

它会返回一些结果。

我想获取这些结果并使用第二个选择进一步过滤它,如下所示:

SELECT * 
FROM
(SELECT student_payment
FROM student
LEFT JOIN student_state ON student.student_id = student_state.student_id_fk
WHERE student_surname LIKE '%XXX%'
OR student_lastname LIKE '%XXX%') AS test
WHERE
student_payment LIKE '%XXX%'
OR student_unlock LIKE '%XXX%'

当我将第一个 SELECT 插入到 FROM 括号中时,出现需要别名的错误。当我为子查询提供别名时,它显示

Unknown column student_payment or student_unlock

有什么想法吗?

最佳答案

您的第一个查询仅返回 1 列,但在第二个查询中您尝试按 2 列进行过滤。
因此,包含两列是您的第一个查询:

SELECT t.* FROM (
SELECT student_payment, student_unlock
FROM student LEFT JOIN student_state
ON student.student_id = student_state.student_id_fk
WHERE student_surname LIKE '%XXX%' OR student_lastname LIKE '%XXX%'
) t
WHERE t.student_payment LIKE '%XXX%' OR t.student_unlock LIKE '%XXX%'

您可以获得相同的结果:

SELECT student_payment, student_unlock 
FROM student LEFT JOIN student_state
ON student.student_id = student_state.student_id_fk
WHERE
(student_surname LIKE '%XXX%' OR student_lastname LIKE '%XXX%')
AND
(t.student_payment LIKE '%XXX%' OR t.student_unlock LIKE '%XXX%')

关于mysql - 如何进一步过滤 SELECT 查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56509708/

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