Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过特定搜索从多表表中获取记录_C#_Mysql_Sql - Fatal编程技术网

C# 通过特定搜索从多表表中获取记录

C# 通过特定搜索从多表表中获取记录,c#,mysql,sql,C#,Mysql,Sql,我正在研究一个图书馆自动化系统 表格 book(id,name,author,code) student(id, name,surname,number) lend_book(id, book_id[fk from book],student_id,lend_date,receive_case) {学生id和图书id为钥匙,收件箱为tinyint(1)} 因此,我需要一个sql查询,它如何搜索图书名称、作者或代码和/或(如果用户输入它)学生姓名、姓氏或号码和/或图书是否收到、未收到或两者

我正在研究一个图书馆自动化系统

表格

book(id,name,author,code)

student(id, name,surname,number)

lend_book(id, book_id[fk from book],student_id,lend_date,receive_case) 
{学生id和图书id为钥匙,收件箱为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.姓氏、s.Number、l.lend\u date、l.receive\u case

b书 b.id上的左外连接lend_book l=l.book_id 在s.id=l.student\U id上左外连接学生s

在哪里 (b.Name类“{0}%”或b.author类“{1}%”或b.code类“{2}%” 和/或 (s.Name如“{3}%”或s.姓氏如“{4}%”或s.number如“{5}%”) 和/或 (l.receive_case={6}或{6}为空)

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

谢谢大家,我解决了它

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

问题是什么?您编写的sql代码有什么问题吗?它给了我syntx错误“'b ON(b.name像“%”或b.code像“%”或b.code像“%”)JOIN lend_book lb'”谢谢先生,但它给了我syntx错误,像'b LEFT OUTER JOIN lend_book l ON b.id=l.book_id LEFT OUTER JOIN student s ON s ON s'