2014-01-23 147 views
-2

連接查詢我有一個所謂的「錢包系統」系統,該系統具有如下三個表數據庫:MySQL查詢從三個表

實體:

  1. wmembers(錢包成員):ID,用戶名,密碼,電子郵件,城市等
  2. WDATA:身份證,婦女參與發展,債券,bondvalue:
  3. Y2014:ID,FNO,日期,狀態,債券市德諾

個關係:

  1. wdata.wid是表wmembers(wmembers.id)
  2. wdata.bond與y2014.fno
  3. wdata.bondval的關係外鍵與y2014.bond
  4. 的關係

我要選擇指定widwdata的所有數據,然後在Y2014搜索,如果他們exisit列出他們

$q=mysql_query("SELECT * FROM wdata1 as a, `y2014` as b 
     WHERE a.bvalue = '$pbond' and a.wid='$wid' 
     and b.bond='$pbond' and a.bond = b.fno and a.bvalue = b.bond"); 
+0

你能否試着格式化/重新翻譯你的問題,使關係更清晰? –

+0

任何時候當你有一個名爲'something_number'的表時,警鈴應該開始響鈴設計。 – Strawberry

回答

0

我不明白你的問題。嘗試類似wmember和wadat是婦女參與發展的wadat是ID在wmember之間的這種

SELECT 
m.id,username,password,email,city, 
w.id,wid,w.bond,bondvalue, 
y.id,fno,date,status 
FROM 
wmember m 
INNER JOIN wadat w ON m.id = w.wid 
INNER JOIN y2014 y ON m.bond = y.bond 
WHERE wid = 1 

希望能關係。 如果關係不正確更新ON部分查詢

ON m.id = w.wid

要正確關係。如果有多個字段都需要進行相關使用因爲這樣的事情

ON m.id = w.wid AND m.name = w.name

參見:mysql-using-joins

0

我嘗試重組你的問題,我提交的答案...

如果從具有至少一個相關的記錄在表Y2014使用該查詢WDATA的所有記錄

SELECT * 
FROM wdata AS w 
INNER JOIN y2014 as y 
    ON w.bond = y.fno 
     AND w.bondval = y.bond 
WHERE w.wid = $wid 

否則,如果你想Y2014與相關記錄WDATA的所有記錄(如果存在)試試這個

SELECT * 
FROM wdata AS w 
LEFT JOIN y2014 as y 
    ON w.bond = y.fno 
     AND w.bondval = y.bond 
WHERE w.wid = $wid 

也許我的連接條件是不是你想要的,檢查它請