2014-03-13 237 views
1

我創建一個搜索使用PHP,我需要搜索公司公司名稱公司類別加入兩個mysql查詢?

* company_content TB *

標題 類別_id

* company_category TB *

標題(類別名稱) ID PARENT_ID(內容表類別ID上)

這裏的我的查詢

$query=mysql_query("SELECT b.title FROM sltdb_cddir_content a, sltdb_cddir_categories b 
WHERE b.title like '%".$searchg."%' AND b.parent_id=81 UNION 
SELECT a.title FROM sltdb_cddir_content a, sltdb_cddir_categories b 
WHERE a.categories_id=b.id AND a.title like '%".$searchg."%' AND b.parent_id=81"); 

這種類型的聯合有效嗎?請指教

UPDATE 01

$query=mysql_query("SELECT b.title 
FROM sltdb_cddir_categories b 
WHERE b.title like '%".$searchg."%' AND b.parent_id = 81 
UNION 
SELECT a.title 
FROM sltdb_cddir_content a join 
     sltdb_cddir_categories b 
     on a.categories_id = b.id 
WHERE a.title like '%".$searchg."%' AND b.parent_id = 81"); 
$json=array(); 
while($display=mysql_fetch_array($query)){ 
    $json[]=array(
     'value'=> $display["title"], 
     'label'=>$display["title"] 
    ); 
} 




echo json_encode($json); 
+2

備註:mysql_ *函數已棄用。您應該查看[mysqli](http://us1.php.net/mysqli)或[PDO](http://us1.php.net/pdo)並準備好語句。另外,請留意[Bobby Tables](http://bobby-tables.com/)。 –

+0

@Matthew約翰遜:你可以給我建議這個.http://stackoverflow.com/questions/22440392/ajax-search-when-click-on-category-name-show-the-items-under-that-c​​ategory- as-re – user3406921

回答

0

這是您的查詢:

SELECT b.title 
FROM sltdb_cddir_content a, sltdb_cddir_categories b 
WHERE b.title like '%".$searchg."%' AND b.parent_id=81 
UNION 
SELECT a.title 
FROM sltdb_cddir_content a, sltdb_cddir_categories b 
WHERE a.categories_id=b.id AND a.title like '%".$searchg."%' AND b.parent_id=81; 

在第一個子查詢中,加入到a是不重要的。這些值從不使用。這似乎是一個等效查詢:

SELECT b.title 
FROM sltdb_cddir_categories b 
WHERE b.title like '%".$searchg."%' AND b.parent_id = 81 
UNION 
SELECT a.title 
FROM sltdb_cddir_content a join 
     sltdb_cddir_categories b 
     on a.categories_id = b.id 
WHERE a.title like '%".$searchg."%' AND b.parent_id = 81; 

如果目的是從兩個表,其中相應的parent_id獲得所有冠軍是81和標題的模式,那麼這個查詢看起來合理匹配。

+0

:在我的情況b.title是類別標題,我想要顯示與該特定類別相關的內容,並且 a.title是內容標題(該類別下的內容) 當前單個內容搜索是工作的地方,就好像我試圖從類別名稱搜索類別名稱 autofiltering,但reuslts搜索按鈕單擊時不顯示。請諮詢 – user3406921

+0

請檢查這個http://stackoverflow.com/questions/22440392/ajax-search-when-click-on-category-name-show-the-items-under-that-c​​ategory-as-re – user3406921

0

我會去一個LEFT JOIN查詢

SELECT a.title, b.title 
FROM sltdb_cddir_content a 
LEFT JOIN sltdb_cddir_categories b 
ON a.categories_id=b.id 
WHERE (b.title like '%".$searchg."%' OR a.title like '%".$searchg."%') 
AND b.parent_id = 81 
+0

:在我的情況下,b.title是類別標題,其中我想要顯示與該特定類別相關的內容,而a.title是內容標題(目錄下的內容)當前單個內容搜索是工作的,我嘗試從類別名稱只搜索類別名稱autofiltering,但reuslts搜索按鈕單擊時不顯示。請指教。我有更新我的問題請參閱更新o1 – user3406921

+0

請點擊此處http://stackoverflow.com/questions/22440392/ajax-search-when-click-on-category-name-show-the-items-under-that-c​​ategory -as-re – user3406921