Mysql 使用未知字段选择
我必须从wordpress数据库中选择mysql:Mysql 使用未知字段选择,mysql,wordpress,Mysql,Wordpress,我必须从wordpress数据库中选择mysql: SELECT wp_posts.ID, wp_posts.post_title AS post_title, responsable.meta_value AS responsable, nif_cliente.meta_value AS nif_cliente, CONCAT_WS(' ',contactos_0_nombre.meta_value,CONCAT('<br><b
SELECT wp_posts.ID, wp_posts.post_title AS post_title,
responsable.meta_value AS responsable,
nif_cliente.meta_value AS nif_cliente,
CONCAT_WS(' ',contactos_0_nombre.meta_value,CONCAT('<br><br>',contactos_1_nombre.meta_value)) AS contactos,
tipo_de_empresa.meta_value AS tipo_de_empresa,
tipo_cliente.meta_value AS tipo_cliente
FROM wp_posts
LEFT JOIN wp_postmeta AS responsable
ON wp_posts.ID = responsable.post_id AND responsable.meta_key='responsable'
LEFT JOIN wp_postmeta AS tipo_de_empresa
ON wp_posts.ID = tipo_de_empresa.post_id AND tipo_de_empresa.meta_key='tipo_de_empresa'
LEFT JOIN wp_postmeta AS nif_cliente
ON wp_posts.ID = nif_cliente.post_id AND nif_cliente.meta_key='nif_cliente'
LEFT JOIN wp_postmeta AS contactos_0_nombre
ON wp_posts.ID = contactos_0_nombre.post_id AND contactos_0_nombre.meta_key='contactos_0_nombre'
LEFT JOIN wp_postmeta AS contactos_1_nombre
ON wp_posts.ID = contactos_1_nombre.post_id AND contactos_1_nombre.meta_key='contactos_1_nombre'
LEFT JOIN wp_postmeta AS tipo_cliente
ON wp_posts.ID = tipo_cliente.post_id AND tipo_cliente.meta_key='tipo_cliente'
WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'clientes'"
选择wp_posts.ID,wp_posts.post_title作为post_title,
responsible.meta_值为responsible,
nif_cliente.meta_值作为nif_cliente,
CONCAT_WS(“”,contactos_0_标称值,CONCAT(‘
’,contactos_1_标称值))作为contactos,
tipo_de_empresa.meta_值作为tipo_de_empresa,
tipo_客户。作为tipo_客户的meta_值
来自wp_的职位
左加入wp_Posteta作为负责人
在wp_posts.ID=responsable.post_ID和responsable.meta_key='responsable'
左加入wp_Posteta作为tipo_de_empresa
在wp_posts.ID=tipo_de_empresa.post_ID和tipo_de_empresa.meta_key='tipo_de_empresa'
左加入wp_Posteta作为nif_客户
在wp_posts.ID=nif_cliente.post_ID和nif_cliente.meta_key='nif_cliente'
左连接wp_Posteta作为联系人_0_nombre
在wp_posts.ID=contactos_0_nombre.post_ID和contactos_0_nombre.meta_key='contactos_0_nombre'
左加入wp_Posteta作为联系人
在wp_posts.ID=contactos_1_nombre.post_ID和contactos_1_nombre.meta_key='contactos_1_nombre'
左加入wp_Posteta作为tipo_客户
在wp_posts.ID=tipo_cliente.post_ID和tipo_cliente.meta_key='tipo_cliente'
其中wp_posts.post_status='publish'和wp_posts.post_type='clientes'
我想联系名义上的联系人。我可以写手册,但它是dinamic(我不知道它是多少)。如果只有一个联系人,它可以是0,但如果这个客户有更多的联系方式,它可以是1000
我怎样才能搜索有多少联系人拥有一个客户端,并将它们全部关联起来
谢谢如果我正确理解您的问题,您可以使用MySQL GROUP_CONCAT功能。您可能需要根据您的情况调整此功能,但基本思路是: 将数据库联接设置为:
LEFT JOIN wp_postmeta AS contactosdb ON wp_posts.ID = contactosdb.post_id
然后在选择中使用以下选项:
GROUP_CONCAT(contactosdb.meta_value SEPARATOR '<br><br>') AS contactos
GROUP_CONCAT(contactosdb.meta_值分隔符'
')作为contactos
在这里帮不了什么忙,这不是关系设计。我使用这个解决方案是为了让它成为是的,但在你的情况下,你最好考虑和比较如何将两者结合起来,但现在它工作得很好。我只想知道如果我不知道N,如何连接N个字段。谢谢谢谢Hanks@bobdye,我认为组\u CAT连接字段具有相同的名称。但是我有f不同名称的IELD:contactos_0.meta_值,contactos_1.meta_值,contactos_2.meta_值…..contactos_N.meta_值,N它是动态的,我不知道这个号码。我需要加入所有contactos_N.meta值。再次感谢