在mysql中加入三个表
我有三张桌子如下
-------
桌名人物
----------
PersonId
HomeId
FirstName
电邮
性别
密码
=================== =================
表名称NoticeBoard
-------------- -----------
NoticeBoardId
NoticeTitle
通知
CreationDate >
PersonId
============================ =========
表名首页
-------
HomeId
HomeNumber
HomeName
我想搜索sql查询...
如... ..
如果我想找人名,Person HomeNumber和NoticeTitle那么如何查找以下查询是行不通的..
I have three table as follow
-------
table name Person
----------
PersonId
HomeId
FirstName
Email
Gender
Password
====================================
table name NoticeBoard
-------------------------
NoticeBoardId
NoticeTitle
Notice
CreationDate
PersonId
=====================================
table name Home
-------
HomeId
HomeNumber
HomeName
I want to make search sql query...
as like..
If I want to find person name, Person HomeNumber and NoticeTitle so how to find following query can not work..
ALTER PROCEDURE dbo.sp_Custom_Select_Complain
(
@PersonId int = NULL,
@FirstName varchar(50) = NULL,
@Gender varchar(50) = NULL,
@ComplainId int = NULL,
@ComplainTitle varchar(100) = NULL,
@ComplainInfo varchar(400) = NULL,
@HomeId int = NULL,
@HomeNumber int = Null,
@HomeName varchar(50) = Null
)
AS
select
P.FirstName,
P.Gender,
C.ComplainTitle,
C.ComplainInfo,
H.HomeNumber,
H.HomeName
From Person P
Inner Join Complain C On C.PostId = P.PostId
Inner Join Home H On H.HomeId = P.HomeId
Where
(@PersonId Is Null Or P.PersonId = @PersonId)
AND (@FirstName Is Null Or P.FirstName LIKE '%' + @FirstName + '%')
AND (@Gender Is Null Or P.Gender = @Gender)
AND (@ComplainTitle Is Null Or C.ComplainTitle LIKE '%' + @ComplainTitle + '%')
AND (@ComplainInfo Is Null Or C.ComplainInfo LIKE '%' + @ComplainInfo + '%')
RETURN
------------------- ---------------------------
请帮帮我......
----------------------------------------------
please help me...
尝试将连接更改为左外连接
Try changing your joins to left outer joins
你检查空值传递给整数值。
示例:
int? PersonId = Null
或
int? PersonId = 1
Hi,
did u check null value passing to integer value.
Example :
int? PersonId = Null
OR
int? PersonId = 1