Jump to content

Recommended Posts

Hi,

 

How can I select multiple columns from two tables and run a search through multiple fields?

 

My tables are:

 

t_persons (holds information about persons)

t_incidents (holds foreign keys from other tables including t_persons table)

 

What I want is to pull some columns from the two tables above and run a search with a LIKE criteria, something like below. The code originally worked well with only one table, but for two tables it generate errors:

$query = "SELECT
p.PersonID
,p.ImagePath
,p.FamilyName
,p.FirstName
,p.OtherNames
,p.Gender
,p.CountryID
,i.IncidentDate
,i.KeywordID
,i.IncidentCountryID
,i.StatusID

FROM t_incidents AS i
    LEFT JOIN t_persons AS p ON i.PersonID = p.PersonID
WHERE
    FamilyName LIKE '%" . $likes . "%' AND
    FirstName LIKE '%" . $likes . "%' AND
    OtherNames LIKE '%" . $likes . "%' AND
    Gender LIKE '%" . $likes . "%' AND
    IncidentDate LIKE '%" . $likes . "%' AND
    KeywordID LIKE '%" . $likes . "%' AND
    IncidentCountryID LIKE '%" . $likes . "%' AND
    StatusID LIKE '%" . $likes . "%'
ORDER BY PersonID DESC $pages->limit";

Errors are:

Column 'IncidentDate' in where clause is ambiguous
Column 'KeywordID' in where clause is ambiguous
Column 'IncidentCountryID' in where clause is ambiguous
Column 'StatusID' in where clause is ambiguous

These columns are foreign keys on t_incidents table. I have also attached the table relationship diagram if it helps.

 

I will appreciate any better way to do this.

 

Thanx.

 

Joseph

post-134077-0-99718400-1412145072_thumb.png

Edited by josephbupe

Errors like "Column 'IncidentDate' in where clause is ambiguous" usually mean that the column "IncidentDate" appears in more than one table. Try changing the column names in your where clause so that they specify which table to use. For example, this:

IncidentDate LIKE '%" . $likes . "%' AND

Would likely be this:

i.IncidentDate LIKE '%" . $likes . "%' AND

id columns are internal key links in the database and are no concern of the user.

 

In addition, LIKE is used for wildcard string searches and not for numeric values like id fields.

 

So why are you including the id fields in your search criteria?

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.