gpt4 book ai didi

MySQL 左连接 WHERE table2.field = "X"

转载 作者:IT老高 更新时间:2023-10-28 23:52:22 24 4
gpt4 key购买 nike

我有以下表格:

页面:

+------------+--------------+------+-----+---------+----------------+
| 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/

24 4 0