无法在三个表之间进行查询

时间:2015-01-11 20:08:45

标签: mysql sql tsql

我试图查询两个表并显示一些结果但到目前为止没有运气。 这是我尝试的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_rest中有tables列,其中包含restaurant_id。我希望现在有点清楚了吗?

1 个答案:

答案 0 :(得分: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";