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

标签 php mysql sql

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

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

我的目标是仅显示 IA 表 PhysioReference 字段中的记录,其中该字段等于成员表中保存在 session 中的 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 - 表名称

Reference, Forename, Surname, DOB, PhysioReference,

提前致谢

最佳答案

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

$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 是字符串(字母数字),您将需要在语句中添加一些单引号,如下所示:

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

请注意,如果您尚未使用它创建变量,则说明您错误地引用了 session 。您可能想尝试以下方法:

编辑(基于评论):

$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);

关于php - MySql 查询使用两个带内连接的表(我认为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959757/

相关文章:

php - 查询多个 WHERE 不工作

php - 在 jQuery 中附加一个 html 链接

mysql - GROUP BY 区间重叠时间戳MySQL查询

mysql - 如何查看未与当前用户进行事件游戏的所有用户

php - 更好地理解 PHP 和 SQL

sql - 选择没有指针的对象

PHP 在服务器上创建文本文件

php - 添加自定义字段 jQuery 数据表

Mysql 查询 - JOIN 语句

mysql - 如何逐行更新从过程中的游标检索的数据库值?