mysql - 在 MariaDB 中使用过滤器查询 1 到多合一记录
问题描述
我在 MariaDB 的架构中有这些表:
CLIENTI
id | ragionesociale | idZucchetti | MORE COLS....
1 | SEA srl | 569 | ....
2 | Contoso Srl | 700 | ....
...
RIFERIMENTI_CLIENTI
ID | riferimento | idtipo | idCliente | MORE COLS....
1 | info@seasrl.it | 2 | 1 | ....
2 | 003905623547 | 1 | 1 | ....
3 | 003905685748 | 6 | 1 | ....
4 | info@contoso.it | 2 | 2 | ....
5 | 0039562475 | 1 | 2 | ....
6 | 00398562586 | 6 | 2 | ....
...
我现在做的基本 SELECT 语句是
SELECT SQL_CALC_FOUND_ROWS c.idzucchetti,
c.ragionesociale,
c.indirizzo,
c.citta,
c.cap,
c.prov,
(SELECT riferimento
FROM riferimenti_clienti AS rc
WHERE rc.idcliente = c.id
AND rc.idanagrafica = -1
AND idtipo = 1) AS tel,
(SELECT riferimento
FROM riferimenti_clienti AS rc
WHERE rc.idcliente = c.id
AND rc.idanagrafica = -1
AND idtipo = 6) AS fax,
(SELECT riferimento
FROM riferimenti_clienti AS rc
WHERE rc.idcliente = c.id
AND rc.idanagrafica = -1
AND idtipo = 2) AS email
FROM clienti AS c
产生这个结果
QUERY RESULT
idZucchetti | ragionesociale ... | tel | fax | email
569 | SEA srl | 003905623547 | 003905685748 | info@seasrl.it
700 | Contoso Srl | 0039562475 | 00398562586 | info@contoso.it
第一个问题:得到结果的正确方法是什么?
第二个问题:我需要过滤电话、传真或电子邮件列。当我写在“WHERE”子句中时
tel LIKE '%...%'
或传真或电子邮件,我收到此错误:
Error Code: 1054. Unknown column 'tel' in 'where clause'
我能怎么做?
解决方案
推荐阅读
- javascript - 将类添加到特定的兄弟元素,而不是页面上出现的每个兄弟元素
- r - jupyter的R内核中的ggplot2更改了十进制分隔符
- r - 从R中的HTML标签中提取数据
- javascript - 一张一张地随机淡入 6 张图像网格
- linux - 为什么 Slack 在 Fedora 29 升级后返回分段错误?
- python-3.x - 在python中过滤不以某个名称开头的字符串
- python - 在没有 numpy 的情况下搜索二维列表
- java - 我的手机和模拟器之间的应用程序大小不同
- firebase - Firestore 中聊天的数据模型
- r - 为闪亮的 renderDataTable 中的每个数字添加逗号