Nayana
Nayana

Reputation: 725

how do I get a result from two tables using one SQL Query?

I have three MySQL tables

table 1 . dcenter fields are: d_id,name,location,address

table 2 . dcds fields are:id,d_id,s_id (d_id and s_id are primary key of dcenter and service table)

table 3 . service fields are: s_id,s_name

I have one search box, where users can search by dcenter name, search by location or search by service

And I wrote a sql query to get a service list using JOIN but its not working

code is

if(isset($_POST['search']))
{
    $data = $_POST['search_text'];

      $query= "SELECT * FROM dcenter JOIN dcds on dcds.d_id=dcenter.d_id JOIN service on service.s_id=dcds.d_id WHERE location = '" . $data. "' || name = '" . $data. "' || s_name '". $data."'";

        $result = mysql_query($query);

        var_dump($result);

        if(!$result)
        {
            echo "no data found";
        }
       }

Whats wrong in my query?

Upvotes: 0

Views: 83

Answers (2)

Suraj
Suraj

Reputation: 373

Try this:

 SELECT * FROM dcds JOIN dcenter on dcds.d_id=dcenter.d_id JOIN service on service.s_id=dcds.s_id WHERE location = '" . $data. "' || name = '" . $data. "' || s_name '". $data."'";

Upvotes: 0

Eralper
Eralper

Reputation: 6612

If following SQL returns a result set

SELECT * 
FROM dcenter 
JOIN dcds on dcds.d_id = dcenter.d_id 
JOIN service on service.s_id = dcds.d_id

This WHERE criteria addition can help you

SELECT * 
FROM dcenter 
JOIN dcds on dcds.d_id = dcenter.d_id 
JOIN service on service.s_id = dcds.d_id 
WHERE 
    location = '' 
    or name = '' 
    or s_name = ''

Upvotes: 1

Related Questions