mysql查询以前的数据库,改变了MYSQL数据库表,需要这个查询像以前一样工作

所以这看起来像一个简单的小问题,但是我没有成功地让这个工作正常进行。我有一个评论表,一个帖子表和一个通知表。此前,我将该postID存储在一个名为“uniqueID”的列中,以便发送通知和评论。现在我已经更改了它,以便将唯一标识的评论存储在该列中。所以我需要做的就是为通知中的每一行提供注释,转到uniqueID == id的注释表,然后返回该表中名为postID的值。

这张照片更好地显示了我的问题。

http://i41.tinypic.com/nyzolg.png

照片中的信息是:

Table: Notifications

id UserID FromID UniqueID Action State Read_Date Date

1 1 2 1 1 0 0 1325993600

2 1 6 2 1 0 0 1325993615

3 1 2 1 2 0 0 1325993622

4 1 6 2 2 0 0 1325993661

5 2 6 2 2 0 0 1325993661Action = 1表示UniqueID标识Posts中的一行;

Action = 2表示UniqueID标识注释中的一行。

Table: Posts

id ToID FromID Post State Date

1 1 2 Hey 0 1325993600

2 1 6 okay yeah 0 1325993615

Table: Comments

ID PostID FromID Comment State Date

1 1 2 lol 0 1325993622

2 1 6 ohh 0 1325993661因此,在操作为2的通知表中,UniqueID是用于注释表中的'id'的。

我想返回的是PostID,所以在查询中它就像是UniqueID是这样的:

1

2

1

1

1但是,在Action为1的情况下,UniqueID将保持不变。

我当前的查询是这样的,它在我改变我的数据库值之前工作正常。

$notificationsq = mysql_query("

SELECT

N.*,

P.*,

MAX(N.date) AS newDate

FROM

notifications N,

posts

WHERE

N.userID='$session'

AND

(

(

N.action='1'

AND

(N.state = 0 OR N.state=1)

)

OR

N.action='2'

)

AND P.state='0'

AND

N.uniqueID=P.id

GROUP BY

N.uniqueID

ORDER BY

N.state ASC,

newDate DESC

") or die(mysql_error());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值