【发布时间】:2018-05-02 20:10:39
【问题描述】:
我有 4 个表 Participation,Lecturer_info,ScientificEvaluator,commision 每个表都有一个外键到 Lecturer_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 = '% %'
【问题讨论】:
-
请添加示例数据和预期结果。另外,“随机名称”是什么意思?
-
如果您提供minimal, complete, and verifiable example (MVCE),您将获得更好的答案。如果没有代码和示例数据,Stack Overflow 社区就很难为您提供帮助。此外,我们无法判断您的
WHERE子句中提到的列来自哪些表,因此我们无法弄清楚您在做什么。 -
到目前为止最大的问题是你的连接语法。当您拥有 AND 时,那些过时的连接就是内部连接。当您将它们更改为 OR 时,您已经完全破坏了连接逻辑。修复您的联接,这可能不再是问题。 sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/…
-
此外,您应该使用别名并始终在查询中指定列属于哪个表。由于我们不知道您的数据库,因此不可能知道哪个列与哪个表对应。我还建议你不要做像讲师_fk这样的事情。它仍然是讲师 ID,只是在不同的表中作为外键。
-
@squillman 这意味着返回了许多随机值
标签: sql-server vb.net