我有一个two表,我想得到的是从PhotoEmbed表中获取一个Photos代码,这样我就可以用它在网页上显示一张照片-每次重新加载网页时,它都会显示一张新图片。但我不想继续展示同一张照片?!我想每次都显示一个新图片…所以我设置了以下表格,但不知道如何运行查询来实际获取SELECT PhotoEmbed FROM Photos WHERE **CURRENT UserID** FROM Seen WHERE Seen **IS NOT EQUAL TO 1**
如果Seen等于1,则再次运行查询并找到新的PhotoEmbed代码。您是使用查询来完成此操作,还是只使用select * from Photos and all from Seen然后使用php来确定要使用的嵌入代码?
下面是两个数据库表的演示。左边是Photos Table表,右边是Seen表(从userid开始)。

| PhotoID | PhotoEmbed|    |UserID    | PhotoID |Seen |

| 1       |Filename.jpg|   |2         | 1       |1    |

最佳答案

获取所有不在“已查看”表中的照片,如下所示:

SELECT PhotoID,etc from Photos where PhotoID NOT IN (select PhotoID from Seen where UserId = 1)

如果您只在Seen表中插入已查看的图像(seen列,我猜bool可能会被删除),如果您为每个用户插入一个新图像,我不认为您应该使用设置为0的seen填充表。
如果用户碰巧看到所有图像,请考虑随机获取:
SELECT * FROM PhotosORDER BY RAND() LIMIT 1;

关于php - 如何从另一个表中没有特定值的UID的表中选择*?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31265206/

10-11 01:34