使用两个带内连接的表的MySql查询(我认为)

时间:2014-04-09 10:27:12

标签: php mysql sql

我正在尝试让这个查询起作用,我只想显示记录,其中Physio Reference(来自表1)等于SESS_MEMBER_ID(来自MySQL中的成员表但来自登录创建的会话)

我不确定如何做到这一点,因为我仍然掌握了php的概念。我不确定你是否必须在最后放一些代码来告诉它该字段来自表members

我的目标是仅显示IA表PhysioReference字段中的记录,其中该字段等于成员表中会话中保留的SESS_MEMBER_ID。

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id=SESS_MEMBER_ID";
$result=mysql_query($sql);

会员 - 表名

  

member_id,firstname,lastname,login,passwd,

IA - 表名

  

参考,姓名,姓氏,DOB,PhysioReference,

提前致谢

2 个答案:

答案 0 :(得分:1)

您可能错过了查询中的美元符号:

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id=$SESS_MEMBER_ID";
$result=mysql_query($sql);

由于查询在双引号内,您可以在查询中使用该变量而不会发生问题或需要连接。但是,如果您的成员ID是字符串(字母数字),则在语句中需要一些单引号,如下所示:

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id='$SESS_MEMBER_ID'";
$result=mysql_query($sql);

就此而言,如果您还没有使用变量,那么您正在错误地引用会话。您可能想尝试这些方面:

编辑(基于评论):

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id=".$_SESSION['SESS_MEMBER_ID'];
$result=mysql_query($sql);

答案 1 :(得分:0)

定义的变量不会在字符串中解析。

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id=" . SESS_MEMBER_ID;
$result=mysql_query($sql);

或者,如果是字符串:

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id='" . SESS_MEMBER_ID . "'";
$result=mysql_query($sql);

或者,它可能不是定义的变量,而是会话变量?

// At the start of your code.

session_start();

// ... 

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id=" . $_SESSION["MEMBER_ID"];
$result=mysql_query($sql);

或者,如果MEMBER_ID是一个字符串:

$sql="SELECT * 
      FROM IA tb1, members tb2 
      WHERE tb1.PhysioReference=tb2.member_id
      AND tb2.member_id='{$_SESSION["MEMBER_ID"]}';
$result=mysql_query($sql);

(或者,如果您将其称为SESS_MEMBER_ID,请尝试$_SESSION["SESS_MEMBER_ID"]。)