2013-02-28 16 views
0

我對查詢有點麻煩。表之間的聯接

我有這個DB結構

PROCESSES PROCESS_ID PROCESS_NAME

ITENS ITEM_ID item_process_id ITEM_NAME

FILES 的file_id file_item_id FILE_NAME

I運行此查詢來獲取進程ID:

$result = mysql_query("SELECT * FROM processes WHERE process_id='$process_id'"); 
$row = mysql_fetch_array($result, MYSQL_BOTH); 
$process_id = $row['process_id']; 

將這個ID在一個循環中,從表中獲取所有Itens:

$query="SELECT * FROM itens WHERE item_process_id='$process_id'"; 
$result = mysql_query($query) or die(mysql_error()); 
$num = mysql_numrows($result); 

並調用項目名稱爲LOOP

問題是當我嘗試從FILES表中調用「file_name」時。 我嘗試了一個左連接到表,但沒有成功。 「file_name」變量爲空

任何人都可以幫助我理解如何解決這個問題嗎?

TKS

+0

那麼你的查詢'files'什麼樣子的?你確定有數據嗎? – 2013-02-28 03:37:03

+0

是的,我有數據文件表 – user2112020 2013-02-28 03:38:24

+0

'「SELECT * FROM itens LEFT JOIN FILES FILES.item_id = itens.item_id WHERE itens.item_process_id ='$ process_id'」'。請記住,如果沒有coressponding條目,則LEFT JOIN檢索第一個表(itens)的所有結果並將其連接到表FILES,並在FILES一側填充NULL值。這可能是爲什麼你可以有空值(如果你沒有文件的某些iten) – MatRt 2013-02-28 03:38:39

回答

0

嘗試LEFT JOIN上的文件的file_id = file_item_id