我有几个与字段ID链接的表。我想做的是从所有通过id字段访问的表中获取所有信息。

我尝试过的(没有成功)是这样的:

$result = mysql_query("
    SELECT * FROM mv_user_info
    INNER JOIN mv_user_password
        ON mv_user_password.uid = mv_user_info.uid
    INNER JOIN mv_user_lang_interested
        ON mv_user_lang_interested.uid = mv_user_info.uid
    INNER JOIN mv_user_disponibility
        ON mv_user_disponibility.uid = mv_user_info.uid
    WHERE mv_user_info.uid = '$uid'
") or die(mysql_error());

最佳答案

您的查询看起来不错-尽管我无法保证表或列的名称。也许问题在于用户丢失了其中一张表中的行。然后,没有任何内容与inner join匹配,并且不会返回任何行。

尝试使用left join代替:

SELECT * FROM mv_user_info
LEFT JOIN mv_user_password
    ON mv_user_password.uid = mv_user_info.uid
LEFT JOIN mv_user_lang_interested
    ON mv_user_lang_interested.uid = mv_user_info.uid
LEFT JOIN mv_user_disponibility
    ON mv_user_disponibility.uid = mv_user_info.uid
WHERE mv_user_info.uid = '$uid';

09-26 18:43
查看更多