我试图找出某些东西,但它不是很好。 我有两个表的数据库。从mysql中检索值,如果它不存在于其他表
表1:用户 表2:投票
表1具有:用户ID 表2具有:votemyid和votevotedid
第二个是相同的用户ID,我怎样才能确保它如果表中的votevotedid值存在,则不会从用户中选择值?
我的SQL代码到目前为止是:
$result = mysql_query("SELECT *, (6371 * acos(cos(radians($lat)) * cos(radians(lat)) * cos(radians(lng) - radians($lng)) + sin(radians($lat)) * sin(radians(lat)))) AS distance count(*) FROM users,voted WHERE voted.votevotedid not in (select users.userid from users) HAVING distance < $distance ORDER BY RAND() LIMIT 1");
我能做到这一点,然后做了投票数据库的第二个请求mysql_query,但得到的要多
您从两个表中选择而未指定连接条件。你会得到两个表的笛卡尔积。例如1000条记录和2000条记录= 2,000,000条加入产品。 –
你应该更好地解释你需要什么。也许提供一个例子。 –
嗯,我有两个表,一个用户和一个用户在其他人投票,它只需要选择该用户没有投票的用户:$ result = mysql_query(“SELECT *,(6371 * acos(cos (弧度($ lat))* cos(弧度(lat))* cos(弧度(lng) - 弧度($ lng))+ sin(弧度($ lat))* sin(弧度(lat))))AS距离count(*)FROM users,vote WHERE voted.votevotedid not in(select users.userid from users)HAVING distance <$ distance ORDER BY RAND()LIMIT 1“);但如果我这样做,我不能过滤myid –