2013-12-18 21 views
0

目前我有簡單的mysql SELECT查詢打印如下。mysql從一個表中選擇全部並檢查另一個表的ID和狀態

"SELECT * FROM pictures WHERE views > $views_min ORDER BY $rating_or_something_other DESC LIMIT $index , $pics_per_page"; 

我想找到的所有照片沒有保留,但問題是,保持狀態是在其他表:

picturespictures.gallery_id列,我要檢查galleries.id表此id我的最後一點是gallery.hold狀態。根據這些數據,我只想得到所有pictures.*的結果,這些數據並未保留(按圖庫)。

我想這樣的事情,但似乎需要使用JOINS

"SELECT p.*, g.id, g.hold FROM pictures AS p, galleries AS g 
    WHERE p.views > $views_min AND p.gallery_id = g.id AND g.hold <> 1 ORDER BY p.rating(?) DESC LIMIT $index, $pics_per_page; 

回答

0

爲什麼要防止使用連接?這很簡單:

SELECT p.*, g.id, g.hol FROM pictures AS p 
INNER JOIN galleries as g ON g.id = p.gallery_id 
WHERE p.views > $views AND g.hold <> 1 
ORDER BY p.rating(?) DESC 
LIMIT $index, $pics_per_page; 
+0

感謝它的工作。只有一個問題。來自兩個表的'ID'字段也合併:((( – abrahab

+0

然後只需將這兩個表加入到select中: '內部連接表2作爲t2在t2.id = p.t2_id 內部連接表3作爲t3在t3.id = p.t3_id' –

相關問題