gpt4 book ai didi

mysql - 稍微更改了 MYSQL 数据库表,需要此查询像以前一样工作

转载 作者:行者123 更新时间:2023-11-29 14:37:18 24 4
gpt4 key购买 nike

所以这似乎是一个简单的小问题,但我还没有成功地让它正常工作。我有一个评论表、一个帖子表和一个通知表。以前,我将 postID 存储在名为“uniqueID”的列中,用于通知和评论。现在我已经更改了它,以便评论唯一 id 存储在该列中。因此,我需要做的就是对于通知中作为评论的每一行,转到 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 1325993661

Action = 1 表示 UniqueID 标识 Posts 中的一行;Action = 2 表示 UniqueID 标识 Comments 中的一行。

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

最佳答案

尝试将“C.*”添加到您的 select 子句中,将“comments C”添加到您的 from 子句中,并将“N.action='2'” 更改为

(N.action='2' and (N.uniqueId = C.id))

关于mysql - 稍微更改了 MYSQL 数据库表,需要此查询像以前一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8775312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com