我在mySql中真的很新,因为我仍然在我的学位一年级。真的需要帮助解决这个问题。
我想建立一个约会系统,我有表1(注册)和表2(makeappt)。我使用Dreamweaver和mysql作为我的数据库。如表1所示,主键是用户名和表2。
我的问题是当我测试登录为'Mia'作为示例时,Mia无法查看她的约会,但系统查看另一个用户的约会。 我该怎么办?我试过了:
SELECT DISTINCT
t2.username,
t2.disease,
t2.date,
t2.time,
t1.username,
FROM
signup t1
JOIN makeappt t2 ON t1.username = t2.username;
但它不起作用。
表1(注册)列:用户名,姓名,地址,电话号码等 表2(makeappt)列:用户名。疾病,日期,时间。
什么是可以从Table2(makeappt)查看用户名中的用户名的SQL stmt。表1(注册)= username.Table2(makeappt)。
什么不起作用,当我把我的问题中所述的代码放在Dreamweaver的记录集中时,它不会显示有关用户自己预订的约会的信息。例如,登录的用户是Mia ,当她点击查看约会时,她想查看她的约会信息,她只看到其他用户的约会信息。我认为这是sql语句本身的错误。但我不知道如何解决它,因为我试过JOIN和其他sql statemnt
这是给我带来问题的代码:
<?php mysql_select_db($database_sdas, $sdas);
$query_viewappt = "
SELECT DISTINCT t2.username
, t2.disease
, t2.date
, t2.time
, t1.username
FROM signup t1
JOIN makeappt t2
ON t1.username = t2.username
";
$viewappt = mysql_query($query_viewappt, $sdas) or die(mysql_error());
$row_viewappt = mysql_fetch_assoc($viewappt);
$totalRows_viewappt = mysql_num_rows($viewappt);
?>
答案 0 :(得分:0)
我不确定我是否完全理解您的问题,但如果我这样做,解决方案比您想象的要简单得多。
如果您唯一关心的是检索'Mia'的记录,那么您根本不应该加入表格。你可以通过使用像
这样的东西来获得它 SELECT username
,disease
,date
,time from makeappt where username='Mia'
没有理由使用DISTINCT,因为用户名是主键,它将是唯一的。
但是如果你需要t1和t2的一些数据,那么你可以
SELECT t2.username
, t2.disease
, t2.date
, t2.time
, t1.someField
FROM signup t1
JOIN makeappt t2
ON t1.username = t2.username and t2.username='Mia'
顺便说一下,您可能想重新考虑您的设计,因为您当前的设计不允许为用户进行第二次约会(主键应该是唯一的)。