2011-02-11 68 views
1

所以我一直在尋找如何使這個工作,一直沒有找到它,甚至沒有找到正確的搜索。MySQL條件加入查詢(WordPress數據庫)

我正在尋找加入t1到t2,我從t1獲得所有結果,它只在t2的列值是「something」時才加入,表中設置了t2列中有許多項目。所以如果t2的列不等於「something」,那麼只需要其他數據(但主要是我只希望t1行的每個值中有一個值,因爲每個t1行最多有一個t2行)。

select * t1 LEFT JOIN t2 where t2.column="something" AND t1 conditions. 

任何幫助將不勝感激,表格是WordPress表格,而我被要求做的事情會更容易做到沒有WordPress知道。

- 實際代碼的嘗試:

$ SELECT * FROM posts LEFT JOIN postmeta ON post_id = id WHERE post_status='publish' AND post_type='portfolio' AND meta_key='rjmeta_video' 


$Table 1 
$ID  Title .... 
$---------------------- 
$5  Some post I need outside of WP 

$Table 2 
$meta_id post_id meta_key .... 
$-------------------------------- 
$3  5   rjmeta_video 
$4  5   _edit_lock 
$5  5   _edit_last 
+0

你能舉個例子嗎? 2個表格定義,虛擬內容和預期結果)? – wimvds 2011-02-11 15:13:16

回答

4

我相信這是你的意思:

select distinct t1.* from t1 
LEFT JOIN t2 on [condition for join] and t2.column="something" 
where [t1 conditions]. 

這是假設你只在T1領域感興趣。

什麼我們不知道:

  • 表模式
    • 他們是如何加入? t2.t1_id = t1.id
  • T1條件

上面使用將消除重複行,如果有多個匹配的加入

EDIT(OP註釋響應)DISTINCT

SELECT distinct posts.* FROM posts 
LEFT JOIN postmeta ON (post_id = id and meta_key='rjmeta_video') 
WHERE post_status='publish' AND post_type='portfolio' 

這假定'rjmeta_video'是你最初提到的「東西」