如何根据第一个表匹配获取第二个和第三个表的数据

时间:2013-10-12 01:18:04

标签: php mysql sql arrays

这可能是一个基于这个问题的持续问题

Get info from two tables in database where id match an array?

在上面的问题的答案中,我问如何基于json文件匹配两个表的数据。

好人在他的例子中很好地解释了我如何只能在数组和查询数据库中存储json数据一次,这比我在foreach中的尝试要快得多。

这很有效。

好吧,因为json文件是从其他网站中提取的,因为json文件需要花费更多的时间来加载页面所以我决定将json数组记录到我自己的数据库中并从那里拉出来这会使网站加载很多快点。

但我仍然在通过mysql学习曲线而不知道如何解决更复杂的事情

所以这是我的试用

    $gamesquery = mysqli_query($conn, 
            "SELECT steamgames 
            FROM members 
            WHERE steamID='$steam64id'");
    $data = mysqli_fetch_array($gamesquery);
    $gameslist = $data['steamgames'];

    $querygamename = mysqli_query($conn, 
            "SELECT sc_steamgames.*, sc_steamgameprices.* 
            FROM sc_steamgames 
            LEFT JOIN sc_steamgameprices on (sc_steamgames.appid=sc_steamgameprices.appid) 
            WHERE sc_steamgames.appid IN ($gameslist) 
            ORDER BY title");

哪个有效,但是只能用一个查询来制作吗?

1 个答案:

答案 0 :(得分:1)

如果steamgames以逗号分隔,您可以执行以下操作:

SELECT sc_steamgames.*, sc_steamgameprices.* 
            FROM sc_steamgames 
            LEFT JOIN sc_steamgameprices on (sc_steamgames.appid=sc_steamgameprices.appid) 
            WHERE FIND_IN_SET(sc_steamgames.appid,(
                SELECT steamgames 
                FROM members 
                WHERE steamID='$steam64id'))
            ORDER BY title