0

基本上我有一个类似以下的mysql查询:

mysql_query("SELECT n.title, v.value FROM posts n INNER JOIN votes v ON n.id = v.id");

而我需要做的是从帖子表中获取标题,并从投票表中获取当前投票值。

目前,除非发生投票,否则投票不会存储到投票表中。因此,所有票数为 0 的帖子都不在投票表中。

这会导致错误,它试图获取帖子 id = 投票值 id 的标题和投票值。如果投票表中没有任何记录,则值应返回为 NULL 或 0,但此时整个查询返回为 null,因此我什至无法返回标题。

如何在一个查询中解决所有问题?我不想使用多个查询...谢谢:)

4

3 回答 3

4

使用左连接而不是内部连接

内连接需要连接两侧的表中的匹配行。

左连接(或使用其全名的左外连接)选择左表中的所有行,然后从右表匹配行,如果右表中没有匹配的行,则返回空值,就像您要求的那样.

(也有右外连接,但是在ON子句中改变周围的条件也可以达到同样的效果)

于 2009-01-23T00:02:52.840 回答
0
SELECT n.title, v.value FROM posts n LEFT JOIN votes v ON n.id = v.id
于 2009-01-23T00:03:56.800 回答
-2

SELECT n.title, v.value FROM posts as n, votes as v WHERE n.id = v.id

试试看。

于 2009-01-23T00:04:00.497 回答