Sql 使用join with where子句
我尝试编写一个sql命令来搜索数据库。但它不起作用。这是错误的用法吗 也许你需要外部连接而不是内部连接。。 不确定您的情况有什么问题,但请尝试使用左连接。 可能一个表中只有数据,而另一个表中没有相应的数据 而不是Sql 使用join with where子句,sql,sql-server,Sql,Sql Server,我尝试编写一个sql命令来搜索数据库。但它不起作用。这是错误的用法吗 也许你需要外部连接而不是内部连接。。 不确定您的情况有什么问题,但请尝试使用左连接。 可能一个表中只有数据,而另一个表中没有相应的数据 而不是 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
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 + '%') ";
试试这个:
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 + '%') ";
如果您详细告诉我们哪里出了问题,我们将能够给出更详细的假设:这似乎没问题。到底是什么问题?您是否有您认为应该返回但没有返回的示例o数据?在我看来很好,或者可能没有满足您的筛选条件的数据;在您的查询中,我认为您还没有显示完整的代码。谢谢,现在可以使用LEFT JOIN。
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 + '%') ";