- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试获取我想要的结果集时遇到了一些问题。基本上我有这两个表:
phonemanager_defaults
| id | tag | number |
|-----|-----------------|---------------|
| 1 | MAIN | 0800 111 1111 |
| 2 | LANDLINE | 0800 222 2222 |
| 3 | CUSTOMERSERVICE | 0800 333 3333 |
phonemanager_cookie
| number_id | cookie | number |
|------------|-------------|---------------|
| 1 | twitter | 0800 444 4444 |
| 2 | twitter | 0800 555 5555 |
| 1 | facebook | 0800 666 6666 |
| 2 | facebook | 0800 777 7777 |
| 3 | facebook | 0800 888 8888 |
| 1 | ppc | 0800 999 9999 |
我在 PHP 中创建了一个函数,这样我传入一个 cookie
作为参数,我想返回所有 phonemanager_defaults
以及来自phonemanager_cookie
当然加入了 id
和 number_id
列,并由我指定的 cookie
过滤。
例如,如果我将 twitter
指定为 cookie
,这是我期望的结果集:
Result set (twitter)
| id | tag | default_number | cookie | cookie_number |
|-----|-----------------|----------------|---------|---------------|
| 1 | MAIN | 0800 111 1111 | twitter | 0800 444 4444 |
| 2 | LANDLINE | 0800 222 2222 | twitter | 0800 555 5555 |
| 3 | CUSTOMERSERVICE | 0800 333 3333 | NULL | NULL |
如果我将 ppc
指定为 cookie
:
Result set (ppc)
| id | tag | default_number | cookie | cookie_number |
|-----|-----------------|----------------|---------|---------------|
| 1 | MAIN | 0800 111 1111 | ppc | 0800 999 9999 |
| 2 | LANDLINE | 0800 222 2222 | NULL | NULL |
| 3 | CUSTOMERSERVICE | 0800 333 3333 | NULL | NULL |
我已经尝试了很多不同的查询,但似乎无法正确处理。我原以为 LEFT JOIN
会起作用,但它不会从 phonemanager_defaults
返回所有记录。
这是我目前拥有的:
SELECT
`phonemanager_defaults`.`id` AS `id`,
`phonemanager_defaults`.`tag` AS `tag`,
`phonemanager_defaults`.`number` AS `default_number`,
`phonemanager_cookie`.`cookie` AS `cookie`,
`phonemanager_cookie`.`number` AS `cookie_number`
FROM
`phonemanager_defaults`
LEFT JOIN
`phonemanager_cookie` ON `phonemanager_defaults`.`id` = `phonemanager_cookie`.`number_id`
WHERE
`phonemanager_cookie`.`cookie` = 'twitter';
谁能提出一个查询来满足我的需求? SQL 不是我的强项。
最佳答案
要从 phonemanager_defaults
获取所有结果,请将您的条件从 where 移动到 ON 连接子句 WHERE
过滤器将应用于整个结果集,而在连接中使用附加条件将加入来自 phonemanager_cookie
的所需结果,对于不匹配的行将为您提供 null
SELECT
`phonemanager_defaults`.`id` AS `id`,
`phonemanager_defaults`.`tag` AS `tag`,
`phonemanager_defaults`.`number` AS `default_number`,
`phonemanager_cookie`.`cookie` AS `cookie`,
`phonemanager_cookie`.`number` AS `cookie_number`
FROM
`phonemanager_defaults`
LEFT JOIN
`phonemanager_cookie` ON `phonemanager_defaults`.`id` = `phonemanager_cookie`.`number_id`
AND `phonemanager_cookie`.`cookie` = 'twitter'
关于php - 令人困惑的联接 - 全表,与另一个中的相应记录联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22039192/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!