gpt4 book ai didi

c# - 通过特定搜索从多个表中获取记录

转载 作者:行者123 更新时间:2023-11-29 19:02:43 26 4
gpt4 key购买 nike

我正在开发图书馆自动化系统。

表格

book(id,name,author,code)

student(id, name,surname,number)

lend_book(id, book_id[fk from book],student_id,lend_date,receive_case)

{ Student_id 和 book_id 伪造 key ,receive_case 为tinyint(1) }

所以我需要一个sql查询如何使用书名、作者或代码和/或(如果用户输入它)学生姓名、姓氏或编号和/或书已收到、未收到或两种情况进行搜索。

query = "SELECT s.name, s.surname,s.number,b.name, b.code, b.author,lb.lend_date,l.delivery_date from student"+
"JOIN book b ON (b.name like '%{1}%' OR b.code like '%{1}%' OR b.code like '%{1}%')" +
"JOIN lend_book lb ON (lb.recieve_case={2})"+
"WHERE (s.name like '%{0}%' OR s.surname like '%{0}%' OR s.number like '%{0}%') ;";

谢谢

最佳答案

选择 b.Id、b.Name、b.Code、s.Id、s.Name、s.Surname、s.Number、l.lend_date、l.receive_case

来自书b 左外连接 led_book l ON b.id = l.book_id 左外连接学生 s ON s.id = l.student_id

哪里 (b.名称如“%{0}%”或 b.作者如“%{1}%”或 b.代码如“%{2}%”) 和/或 (s.姓名如“%{3}%”或 s.姓氏如“%{4}%”或 s.编号如“%{5}%”) 和/或 (l.receive_case = {6} 或 {6} 为空)

如果{6}的值为1,则返回receive case =1。如果{6}的值为0,则返回receive case = 0。要获取这两种情况下的所有记录,{6} 的值应为 null。或者,如果 null 不适合您的情况,那么您可以采用 0/1 以外的任何数字,并将最后一个条件更改为 {6} =

关于c# - 通过特定搜索从多个表中获取记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736400/

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