php - 如何在Mysql中实现Join来获取以下记录

标签 php mysql database mysqli

我是mysql新手,我有如下三个表

表 1 购买

 +--------+-----------+--------+
 | UserID | productID |  traID |
 +--------+-----------+--------+
 | 525    |    2      |  602   |
 +--------+-----------+--------+
 | 525    |   1001    |  602   |
 +--------+-----------+--------+
 | 525    |   1002    |  602   |
 +--------+-----------+--------+
 | 525    |    1      |  602   |
 +--------+-----------+--------+

表 2 优惠

 +--------+-----------+
 | dealsid| deals_name|
 +--------+-----------+
 |   1    | First Deal|
 +--------+-----------+
 |   2    |Second Deal|
 +--------+-----------+

表 3 产品主管

 +-----------+--------------+
 | productID | product_name |
 +-----------+--------------+
 | 1001      | HTML         |
 +-----------+--------------+
 | 1002      | JAVA         |
 +-----------+--------------+

我想要上表的输出如下

(第一笔交易,第二笔交易,HTML,JAVA)

where 子句可以实现为purchase.traID = 602,正如我在上表中发布的那样。

请帮我一些mysql查询。

最佳答案

试试这个,

SELECT pm.product_name , d.deals_name
FROM   purchase p, 
       deals d, 
       productmaster pm 
WHERE  p.productid = d.dealsid 
        OR p.productid = pm.productid 
       AND p.traID = 602;

您可以使用SELECT unique代替select 我建议使用存储过程: 从任一表中查找结果并将其并集作为输出

CREATE PROCEDURE sp_get_product_name
(
arg_traid int
)
BEGIN
    Select pm.product_name 
    from productmaster pm 
    inner join  purchase p
    on pm.productID = p.productID
    where p.traID = arg_traid
    Union
    Select d.deals_name
    from deals d
    inner join purchase p
    on d.dealsID = p.productID
    where p.traID = arg_traid

END

关于php - 如何在Mysql中实现Join来获取以下记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27247196/

相关文章:

python - 在 Python 中动态生成导入,专门针对 Django 模型

javascript - sql create语句中如何使用变量名作为表名

php - PHP 中的 ISO8601 日期,格式为 YYYY-MM-DDTHH :MM:SS. mmmmmmmZ

javascript - 如何用javascript设置一个php变量?

mysql 按两个 unixtime 列组合排序

ruby - 检查 30M 行文本文件中特定项目是否存在的最快方法

php - 右侧的 div 具有动态高度,而左侧的 div 是固定的 : Side by side needed

java - 将列和值的 HashMap 存储到 SQL 数据库以获取用户 ID

php - 如何使用主键从表中选择多个数据?

java - JDO (Google App Engine) 中的持久列表