mysql - 在mysql中连接3个表

标签 mysql sql

我有 3 个表格:图标、产品和菜单。

Product-

id | menu_id
----------
1  | 1  
2  | 1
3  | 2
4  | 2
5  | 3


Menu-

id | image_id
----------
1  | 10
2  | 11
3  | 12



Icon-

id | file_url
----------
10 | www.example/....
11 | www.example/....
12 | www.example/....

因此,当我尝试列出带有指定图标的每个菜单时,我使用:

    $sql = "SELECT m.id, m.category_id, m.menu_name, m.image_id, i.file_url 
            FROM menu m 
            INNER JOIN icon i
            ON i.id = m.image_id
            WHERE m.restaurant_id = '" . (int) $_SESSION['uid'] . "' 
            AND m.status='1'";

但我不知道如何访问我的产品中的 file_url。所以我想列出每个产品以及分配产品的菜单图标。

我怎样才能做到这一点? 感谢您的帮助。

最佳答案

您可以添加另一个联接,即类似的内容:

$sql = "SELECT p.id, m.menu_name, m.image_id, i.file_url 
            FROM product p 
            INNER JOIN menu m ON m.id = p.menu_id
            INNER JOIN icon i ON i.id = m.image_id
            WHERE ... ";

关于mysql - 在mysql中连接3个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908736/

相关文章:

sql - 我的 Rails 查询开始变得复杂,我应该切换到原始 SQL 查询吗?你做什么工作?

sql - web2py sqlform 网格修改编辑 View

PHP 比较变量每次都返回 false

php - Doctrine native sql查询更新

MySQL:你如何计算一行中的非空字段,然后计算相同的值?

sql - 在 WHERE 子句中使用自定义函数加速更新

mysql - SQL 脚本和查询中的随机变量

sql - 让 MySQL 从 LIKE 条件开始时忽略 "The"?

mysql - 如何将用户的钱存储在数据库中?

mysql - 有条件地将字段添加到查询的输出