mysql - 多个连接的多个别名?

标签 mysql

我对两个表进行此查询,结果是(附图)

    SELECT vcc.name, vcc.quantity, vcc.custom_message, vfd.value
FROM vxu_4_wpsc_cart_contents AS vcc
INNER JOIN vxu_4_wpsc_submited_form_data AS vfd ON vcc.purchaseid = vfd.log_id
WHERE vfd.form_id
IN ( 2, 9 )

我想a)删除重复数据,b)在同一行中有第二个“值”条目,所以我得到“名称”“数量”custom_message“值1(全名)”“值2(电子邮件)'在一排。 我认为这涉及到多表别名和多连接,但没有脑子去弄清楚!我已经尝试过 - 诚实!

the two tables plus result

最佳答案

只需再次连接第二个表,使用精确的 form_id 匹配而不是 IN 并将其移至 ON 子句。

SELECT vcc.name, vcc.quantity, vcc.custom_message, vfd1.value AS full_name, vfd2.value as email
FROM vxu_4_wpsc_cart_contents AS vcc
INNER JOIN vxu_4_wpsc_submited_form_data AS vfd1 ON vcc.purchaseid = vfd1.log_id AND vfd1.form_id = 2
INNER JOIN vxu_4_wpsc_submited_form_data AS vfd2 ON vcc.purchaseid = vfd2.log_id AND vfd2.form_id = 9

此外,如果可能未指定全名或电子邮件(没有 form_id = 2 或 form_id = 9 的行),但结果中仍需要该数据,请考虑使用左联接。

关于mysql - 多个连接的多个别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382793/

相关文章:

mysql - ExpressionEngine 查询模块和排序 SQL UNION

php - 想知道某个值在给定日期出现的次数

php - 使用 PHP 7 安装 Opencart 1.5.x

javascript - 将一张表的id与另一张表的user_id匹配以获取mysql中的记录

mysql - 在 MySQL 查询中重新定义/重新设置参数

php - 使用 codeigniter Json Mysql Ajax Jquery 进行实时搜索

php - 如何在数组中创建一个新字段?

php - sql电影预订模式,获取正确的数据

mysql - 全文搜索工作异常

mysql - 在 phpmyadmin 中上传数据库时出错