作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下表格:
页面:
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| page_id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(20) | NO | | NULL | |
| categories | varchar(255) | NO | | NULL | |
| title | varchar(255) | NO | MUL | NULL | |
| text | longtext | NO | MUL | NULL | |
+------------+--------------+------+-----+---------+----------------+
自定义:
+---------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+-------+
| page_id | int(10) unsigned | NO | PRI | NULL | |
| key | varchar(255) | NO | PRI | NULL | |
| value | longtext | NO | | NULL | |
+---------+------------------+------+-----+---------+-------+
我想以以下方式加入表格:
1) 返回第一个表中的所有条目 LEFT JOIN custom ON pages.page_id = custom.page_id
2) pages.type IN('type_a', 'type_b', 'type_c')
3)第二个表中的“key”具有值“votes”custom.key = 'votes'
到目前为止,我所做的一切,但第三个条件是问题所在。如果表 custom 中没有 key = 'votes'
条目,则查询仅返回这些条目。如果缺少条目,我想返回 NULL
。
我需要 key = 'votes'
,因为我有这个 page_id 的其他条目,其中键不是 'votes',这会复制 pages 中的行p>
最佳答案
只需将您的约束 custom.key='votes'
添加到 LEFT JOIN
SELECT *
FROM pages LEFT JOIN custom
ON pages.page_id=custom.page_id AND custom.key='votes'
WHERE pages.type IN('type_a','type_b','type_c') ;
关于MySQL 左连接 WHERE table2.field = "X",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9973159/
我是一名优秀的程序员,十分优秀!