简体   繁体   English

在where子句中使用join

[英]using join with where clause

SELECT * FROM Base b 
JOIN Departement d ON b.d_id = d.d_id 
JOIN Block bl ON b.b_id = bl.b_id 
JOIN Model m ON b.m_id = m.m_id 
WHERE (b.s_no LIKE '%' + @search +'%' 
OR b.ser_no LIKE '%' + @search + '%'
OR b.user_name LIKE '%' + @search + '%' 
OR d.d_id LIKE '%' + @search + '%' 
OR bl.b_id LIKE '%' + @search + '%' 
OR m.m_id LIKE '%' + @search + '%' 
OR d.d_name LIKE '%' + @search + '%' 
OR m.m_name LIKE '%' + @search + '%') ";

I try to write a sql command to search the database. 我尝试编写一个sql命令来搜索数据库。 But it doesn't work. 但这是行不通的。 Is this a false usage? 这是错误的用法吗?

Maybe you need outer joins instead of inner ones.. Not sure what is wrong in your case, but try using left joins. 也许您需要外部联接,而不是内部联接。。不确定您的情况有什么问题,但是尝试使用左联接。 Probably you just have data in one table, but don't have corresponding data in another one.. 可能您只在一个表中有数据,而在另一个表中没有相应的数据。

instead of 代替

 SELECT * FROM Base b 
 JOIN Departement d ON b.d_id = d.d_id 
 JOIN Block bl ON b.b_id = bl.b_id 
 JOIN Model m ON b.m_id = m.m_id 
 WHERE (b.s_no LIKE '%' + @search +'%' 
 OR b.ser_no LIKE '%' + @search + '%'
 OR b.user_name LIKE '%' + @search + '%' 
 OR d.d_id LIKE '%' + @search + '%' 
 OR bl.b_id LIKE '%' + @search + '%' 
 OR m.m_id LIKE '%' + @search + '%' 
 OR d.d_name LIKE '%' + @search + '%' 
 OR m.m_name LIKE '%' + @search + '%') ";

try this: 尝试这个:

 SELECT * FROM Base b 
 LEFT JOIN Departement d ON b.d_id = d.d_id 
 LEFT JOIN Block bl ON b.b_id = bl.b_id 
 LEFT JOIN Model m ON b.m_id = m.m_id 
 WHERE (b.s_no LIKE '%' + @search +'%' 
 OR b.ser_no LIKE '%' + @search + '%'
 OR b.user_name LIKE '%' + @search + '%' 
 OR d.d_id LIKE '%' + @search + '%' 
 OR bl.b_id LIKE '%' + @search + '%' 
 OR m.m_id LIKE '%' + @search + '%' 
 OR d.d_name LIKE '%' + @search + '%' 
 OR m.m_name LIKE '%' + @search + '%') ";

And if you tell us what is wrong in details - we will be able to give more detailed assumptions :) 如果您告诉我们细节上有什么问题-我们将能够给出更详细的假设:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM