在我的数据库中,我有两个表:回复和主题。
我正在尝试制作一个“贡献”页面,显示用户已经开始或回复了哪些话题。
Inside Replies 是“ThreadId”和“Poster”,它们指定被回复的线程的 Id,Threads 中的每一行都有一个 Id 列和一个“Poster”列。
我正在尝试查询以获取用户已在其中发布或发布的所有 THREADS 的行。
例子:
$myUsername = "Bob";
$q = mysql_query("SELECT * FROM `Threads` WHERE `Poster`='$myUsername'
OR (another query to find if they had a row in Replies matching `ThreadId`='$tid'
AND `Poster`='$myUsername')");
谢谢
最佳答案
您将需要使用 IN 子句来指定线程 ID 应该在回复表中的查询返回的那些中。这样的事情是我正确理解你的表的结构。
SELECT * FROM Threads WHERE Poster = $myUsername OR Id IN (
SELECT ThreadId FROM Replies WHERE Poster = $myUsername
)
关于mysql - 将两个 MySQL 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847303/