2013-02-16 52 views
0

是否可以在兩個不同的表上執行兩次搜索並在一個查詢中使用JOIN以某種方式收集它們重疊的位置?Mysql 2搜索2表加入

這是從人的角度思考過程:(注意,我有兩個表;型材&發票)

  • 查找發票表,該表已支付列裝滿 所有行「支付」

  • 獲取所有的相應的 '簡檔' 列號

  • 刪除重複(或多個occurances)

  • 查找譜表中的所有配置文件與論文的id

  • 請在這些配置進一步的搜索,例如在姓LIKE '%$名字%' 等

事情是這樣的:

$query = "SELECT profileid FROM invoicetable WHERE paidcolumn LIKE '%$paid%' INNER JOIN profiletable ON 
invoicetable.profileid=profiletable.id WHERE (profiletable.firstname LIKE '%$firstname%' AND profiletable.email LIKE ........)"; 

我感覺我幾乎在那裏...

或者我必須通過一個首先是什麼?

任何幫助,非常感謝。

回答

0

試試這個:

SELECT DISTINCT I.profileid 
FROM invoicetable I 
    INNER JOIN profiletable P 
     ON I.profileid=P.id 
WHERE P.firstname LIKE '%$firstname%' 
     AND I.paidcolumn LIKE '%$paid%' 
     AND P.email LIKE ........ 
+0

感謝。似乎讓我更接近一些,但給我重複。如果一個人有兩張發票,他的個人資料就會出現兩次,應該只是一次。 – Lan 2013-02-16 15:32:18

+0

你可以提供表格方案和它們之間的關係嗎?作爲快速解決方案,您可以使用「DISTINCT」。 – 2013-02-16 15:34:06