sách gpt4 ai đã đi

Mysql trả về 1 nếu giá trị được tìm thấy hoặc không có giá trị, trả về 0 nếu giá trị có, ngược lại

In lại 作者:行者123 更新时间:2023-11-29 05:18:05 30 4
mua khóa gpt4 Nike


我需要获取所有在 6 号或 7 号房间或根本不在任何房间的学生的详细信息。如果他们在其他房间,简单地说,我不希望有那个记录。
我的架构是:

students(roll_no, name,class,...)
rooms(room_no,...)
student_room(room_no,roll_no).

学生和房间通过student_room 表相关联。但是,我不知道如何为此编写查询。

1 Câu trả lời

这将为您提供 6 号或 7 号房间以外的学生的详细信息:

LỰA CHỌN
S.*
FROM
student AS s
INNER JOIN student_room AS sr ON s.roll_no = sr.roll_no
WHERE
sr.room_no NOT IN (6, 7)
;

现在您只需反转此逻辑即可返回另一个子集。这称为反加入。在 SQL 中没有直接的语法,但是有几种使用现有语法实现它的方法。如果我们以上述查询为起点,最接近的匹配反连接形式将是 LEFT JOIN + WHERE IS NULL 方法:

LỰA CHỌN
S.*
FROM
student AS s
LEFT JOIN student_room AS sr ON s.roll_no = sr.roll_no
AND sr.room_no NOT IN (6, 7)
WHERE
sr.roll_no IS NULL
;

它是这样工作的:

  1. 联接本身的结果将包含 student 表中的tất cả 个学生,因为该表位于左外部联接的左侧。

  2. 只有当相应的学生不在 6 号或 7 号房间时,联接的右侧才会有数据。否则它将包含空值。

  3. 通过检查右侧是否没有匹配,在 WHERE 子句中排除匹配的行(sr.roll_no IS NULL;它会工作与 sr.roll_no IS NULL 相同,前提是 sr.roll_no 不能有空值)。

关于Mysql 返回 1 如果找到或根本不存在值,如果存在其他值,返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913012/

30 4 0
Bài viết được đề xuất: php - 使用php mysql为div分配不同的类名
Bài viết được đề xuất: iOS 重定向到设置主页
Bài viết được đề xuất: mysql - 交换值存储在表的 2 列中
Bài viết được đề xuất: php - 在管理员编辑器中更改数据库
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com