Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 三表连接MySQL_Php_Mysql_Sql_Join - Fatal编程技术网

Php 三表连接MySQL

Php 三表连接MySQL,php,mysql,sql,join,Php,Mysql,Sql,Join,我有三个mysql表,每个表中都有一个连接唯一的id 插曲 epis_epsiode|u id|epis|u title 观察名单 wali|pisode|id|wali|U状态|wali|U用户|id 监视日志 wast|U插曲| id | wast|U状态| wast|U用户| id 上面显示了两个插曲,插曲123添加到用户16观看列表中,插曲456记录了一个由同一用户观看的插曲 我需要做的是构建一个查询,返回所有的剧集,其中监视列表和监视日志中的用户id都是=16根据剧集行显示

我有三个mysql表,每个表中都有一个连接唯一的id

插曲
epis_epsiode|u id|epis|u title
观察名单
wali|pisode|id|wali|U状态|wali|U用户|id
监视日志
wast|U插曲| id | wast|U状态| wast|U用户| id
上面显示了两个插曲,插曲
123
添加到用户
16
观看列表中,插曲
456
记录了一个由同一用户观看的插曲

我需要做的是构建一个查询,返回所有的
剧集
,其中
监视列表
监视日志
中的用户id都是=
16
根据剧集行显示每个表的状态,否则显示
null

我可以让一个表连接工作,但当我添加另一个井时,这就是问题的原因

我知道还有其他类似的问题,但在尝试了给出的大部分答案后,我仍在努力获得期望的结果

有没有人能提供一个有用的查询示例来实现上述功能

谢谢

编辑

期望的结果

结果
epis|U插曲| id | epis|U标题| wali|U状态| wast|U状态

关于小提琴的更多信息这应该有用:

SELECT  E.epis_episode_id, 
        E.epis_title,
        WLI.wali_status,
        WLO.wast_status
FROM `Episodes` AS E
LEFT JOIN `Watch List` AS WLI
    ON E.epis_episode_id = WLI.wali_episode_id
    AND WLI.wali_user_id = 16
LEFT JOIN `Watch Log` AS WLO
    ON E.epis_episode_id = WLO.wast_episode_id
    AND WLO.wast_user_id = 16

我没有包括一个,因为没有一个像我预期的那样有效,我可以发布一个我正在做的事情的例子,但是我不认为这会有帮助,贡献者也不会有伤害,对吧?SQL JOIN和LEFT JOIN你可以通过一个联盟实现这种事情,是开始了解它们的好地方。添加我的查询作为请求感谢@Alexander的轻推;)感谢这一点,但是这只返回在
app\u watch\u列表的两个链接表中有值的结果
&
app\u watch\u status
我希望返回所有的脚本,然后只需删除
其中wali\u user\u id=16或wast\u user\u id=16
123               1              16
456                1              16
SELECT 
    e.*, 
    wl.wali_status,
    ws.wast_status 
FROM 
    meta_episodes e
LEFT OUTER JOIN
    app_watch_list wl
    ON wl.wali_episode_id = e.epis_episode_id
    AND wl.wali_user_id = 16
LEFT OUTER JOIN
    app_watch_status ws
    ON ws.wast_episode_id = e.epis_episode_id
    AND ws.wast_user_id = 16
123                Test          1              NULL
456                Another…      NULL           1
SELECT e.*, wali_status, wast_status
FROM meta_episodes e
LEFT JOIN app_watch_list wl ON e.epis_epsiode_id = wl.wali_episode_id AND wali_user_id = 16
LEFT JOIN app_watch_status ws ON e.epis_epsiode_id = ws.wast_episode_id AND wast_user_id = 16
SELECT  E.epis_episode_id, 
        E.epis_title,
        WLI.wali_status,
        WLO.wast_status
FROM `Episodes` AS E
LEFT JOIN `Watch List` AS WLI
    ON E.epis_episode_id = WLI.wali_episode_id
    AND WLI.wali_user_id = 16
LEFT JOIN `Watch Log` AS WLO
    ON E.epis_episode_id = WLO.wast_episode_id
    AND WLO.wast_user_id = 16