2017-04-10 52 views
0

我需要一個幫助。我需要檢查一個表的列數據是否存在於使用PHP和MySQL的同一數據庫中的另一個表中。我正在解釋我的表。如何比較使用PHP和MySQL的兩個表格

db_gallery:

id  subcat_id   image 

1   60    123.png 

2   60    234.png 

3   58    456.png 

db_special_image

id  subcat_id   name  gallery_image 

1   60    aaa   123.png 

2   58    bbb   456.png 

在這裏,我需要檢查所有的畫廊圖像是否存在的db_special_image表內。我需要檢查subcat_id。假設我知道subcat_id=60。我需要檢查db_gallery表中的任何圖像是否存在於db_special_image表中,屬於subcat_id=60表。如果有任何圖像,那麼它將返回1,否則返回0.我需要爲此查詢。請幫幫我。

+0

所以,你想這是目前在db_special_image或不存在db_special_image圖像列表? – Hmmm

+0

是的。我需要查詢。 – subhra

+0

我在問,你是否比較圖像名稱如果123.png與subcatid 60在兩個表中都存在,那麼你的查詢應該顯示該行作爲結果。正確? – Hmmm

回答

1

爲了表明這是目前在db_gallery以及db_special_image圖片...

壞內部查詢?

SELECT * from db_gallery WHERE db_gallery.image IN (SELECT gallery_image FROM db_special_image WHERE db_gallery.subcat_id = db_special_image.subcat_id) 

加入

SELECT * from db_gallery INNER JOIN db_special_image ON db_gallery.subcat_id = db_special_image.subcat_id AND db_gallery.image=db_special_image.gallery_image 
+0

還沒有測試過,您可以請檢查並告訴我是否有問題 – Hmmm

+0

好吧,讓我來測試並通知您。 – subhra

+0

歡迎,如果有其他障礙戳。 – Hmmm

1

您可以使用Mysql INNER JOIN來加入兩個表。 然後使用count('something'); if it's !=0, echo "1"; else echo "0"

See this tutorial

0

使用mysql INNER JOIN的INNER JOIN關鍵字選擇具有兩個表中的匹配值的記錄。 ON db_gallery.subcat_id = db_special_image.subcat_id

SELECT name,db_gallery.subcat_id,image from db_gallery INNER JOIN db_special_image ON db_gallery.subcat_id = db_special_image.subcat_id 

如果NUM_ROWS數大於0 echo "1";

其他echo "0";