2015-07-03 91 views
2
seller: 
    id, age, origin, gender, buyer_age, buyer_origin, buyer_gender 

buyer: 
    id, age, origin, seller_age, seller_origin, seller_gender 

組織數據庫和multichoice列在這裏我們要建議買家從該賣家

建議賣家賣東西給買方
用的cronjob購買。
與其中一個查詢做它而不是foreach賣家。最有效的方法是什麼?我不想選擇每一個,並獲得信息,然後改變查詢,再次選擇這是一個在編碼和使用系統內存的殺死過程。如果有可能在下面的語句中使用連接,那麼它是可以的。
如果賣方或買方說年齡和來源對我來說並不重要,那麼它怎麼可能?是否有
通過的cronjob

WHERE seller_origin = ANY 

in mysql?

回答

2

首先將買家和賣家的所有列名都更改爲其前綴的名稱,因爲我們將連接表。

SELECT * 
FROM seller  
INNER JOIN buyer 
ON 
     (seller.buyer_gender = buyer.gender OR seller.buyer_gender IS NULL) AND 
     (buyer.seller_gender = buyer.gender OR buyer.seller_gender IS NULL) AND 
     (seller.buyer_origin = buyer.origin OR seller.buyer_origin IS NULL) AND 
     (buyer.seller_origin = seller.origin OR buyer.seller_origin IS NULL) AND 
     (seller.buyer_age = buyer.age OR seller.buyer_age IS NULL) AND 
     (buyer.seller_age = seller.age OR buyer.seller_age IS NULL) 
+0

謝謝你看來解決了問題的第二部分。如果我們想檢查「性別」,那麼呢?它應該有大約8個條件語句嗎? – user3449439

+0

它不工作'IF附近的語法錯誤(賣方.... – user3449439

+0

好吧我認爲我已經破解了它,我建議檢查這個簡化的表格,以確保所有可能的案例匹配 – par