使用AND和OR之间的区别

时间:2018-05-02 20:10:39

标签: sql-server vb.net

我有4个表参与,Lecturer_info,ScientificEvaluator,commision他们每个人都有一个外键给讲师_info 我想搜索讲师并显示所有表格中的所有值

当我将'和'更改为'或'时,此选择不会返回任何内容。  它返回随机值:

SELECT  Lecturer_Name, com_name ,Sicn_name ,Names_Of_Participations , pdf1 , pdf2,pdf3 
FROM Participation,Lecturer_info,ScientificEvaluator,commision  
where lecturer_fk = Lecturer_id and com_id = part_id  and Sicn_id = part_id 
    and Lecturer_Name = '% %' 

2 个答案:

答案 0 :(得分:1)

通过正确的连接和一些格式化,您的查询可能如下所示。

SELECT l.Lecturer_Name
    , c.com_name 
    , se.Sicn_name 
    , p.Names_Of_Participations
    , pdf1
    , pdf2
    , pdf3
FROM Participation p
join Lecturer_info l on p.lecturer_fk = l.Lecturer_id
join ScientificEvaluator se on se.Sicn_id = p.part_id
join commision c on c.com_id = p.part_id
where l.Lecturer_Name = '% %'

但你真的有一个名字为%%的讲师吗?也许你正试图找到名字中有空格的讲师姓名?这将是LIKE而不是=

如果这个查询没有开箱即用,那是因为我编码是盲目的。

答案 1 :(得分:0)

AND和OR运算符用于根据多个条件过滤记录:

如果由AND分隔的所有条件都为TRUE,则AND运算符显示记录。 如果由OR分隔的任何条件为TRUE,则OR运算符显示记录。