[英]How to make join between 2 tables using 2 values?
在Mariadb数据库中,我想进行查询以连接两个表: joke
和jokevote
以获取由某个用户支持的所有笑话。
表格如下:
玩笑
+-------------+------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+-------------------+----------------+
| id | int(6) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(255) | NO | | None | |
| content | mediumtext | NO | | NULL | |
| user_id | int(10) unsigned | YES | | 0 | |
| username | varchar(32) | NO | | Unknown | |
...
笑话
+---------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| joke_id | int(11) | NO | | NULL | |
| user_id | int(11) | NO | | NULL | |
| vote | tinyint(4) | NO | | NULL | |
+---------+------------+------+-----+---------+----------------+
我尝试过的查询之一是:
SELECT * FROM joke LEFT JOIN jokevote
ON joke.user_id=6 AND joke.id=jokevote.joke_id
AND jokevote.vote=1;
该查询应仅返回2个笑话,但它返回所有笑话。 我也尝试过其他类似的查询:
SELECT * FROM joke LEFT JOIN jokevote
ON joke.user_id=6 AND joke.id=jokevote.joke_id AND
jokevote.vote=1 AND joke.user_id=jokevote.user_id AND ;
(再次返回所有笑话)
因此,我一无所知,想知道在这种情况下正确的查询是什么?
我想你是想做一个INNER JOIN
而不是说
SELECT * FROM joke INNER JOIN jokevote
ON joke.id=jokevote.joke_id
WHERE jokevote.vote=1
AND joke.user_id=6;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.