2015-01-11 64 views
0

我試圖查詢兩個表並顯示一些結果,但目前爲止沒有運氣。 這是我試過的sql查詢無法在三個表之間查詢

SELECT * FROM tables 
    JOIN reservation ON reservation.selected = m.table_id 
    WHERE table_rest = '$rest_id' 
    AND reservation.status is NULL 

這個想法是顯示所有的表。那些status表將不會顯示。目前這項工作有三個表,即一箇中間,但我不想有中間表。這就是我努力的原因。這是工作

SELECT m.* 
     FROM tables m 
     JOIN table_rest mr ON m.table_id = mr.table_id 
     LEFT JOIN reservation ON reservation.selected = m.table_id 
     WHERE rest_id = '$rest_id' 
     AND reservation.status is NULL 

更新當前查詢: 這是當前結構 enter image description here 我想刪除table_rest表。我有table_resttables哪些持有restaurant_id。我希望現在有點清楚?

+0

而你的問題是....? – Marko

+0

工作查詢有一個'LEFT JOIN',另一個有'[INNER] JOIN',我認爲'table_rest'和'rest_id'之間有區別,儘管它們不屬於哪個表格。你的命名似乎不是很一致。 – GolezTrol

+0

只需一秒..我將展示我到底想要做什麼 – Goro

回答

2

試試這個,我認爲,在tablesreservation您的匹配列的table_id所以加加入該列

SELECT m.table_id, table_name, table_image, table_image_big, table_description 
FROM tables m 
LEFT JOIN reservation ON reservation.selectedTable = m.table_id 
WHERE table_rest = '$restaurant_id' 
AND reservation.status is NULL"; 
+0

我已經刪除了第二張表中的'JOIN table_rest',並添加在第一個表'table'列'table_rest'中,這就是爲什麼我把table_rest放在where子句 – Goro

+0

顯示你當前的表結構? – HaveNoDisplayName

+0

我會畫它..只需一秒 – Goro