MySQL - 从三个不同的表中选择数据

时间:2015-01-13 08:42:51

标签: mysql multiple-tables

我正在尝试从三个不同的表中选择数据。我将如何加入这些表格以进行正确的查询?

****customers****
--------------------------
id            full_name
54            Matt Damon
53            Jimmy Kimmel

****samples****
--------------------------
id            rma_id
57            USARP011315-25
56            USARP011315-24

****early_ships****
--------------------------
customer_id   sample_id   shipping_carrier
54            57          UPS
53            56          FedEx

这是我一直在运行的查询但是我得到了0个结果。这是我一直关注的教程:http://javarevisited.blogspot.com/2012/11/how-to-join-three-tables-in-sql-query-mysql-sqlserver.html

SELECT samples.rma_id, customers.full_name, early_ships.shipping_carrier, 
FROM customers c JOIN early_ships e ON c.id = e.customer_id
JOIN samples s ON e.sample_id = s.id

2 个答案:

答案 0 :(得分:2)

您必须使用SELECT子句中的表别名。请检查我为你创建的这个小提琴。它工作得很好。 http://sqlfiddle.com/#!2/49462/8

答案 1 :(得分:1)

两个问题:

  1. SELECT子句末尾有一个额外的逗号。
  2. 在FROM..JOIN子句中,您已经给出了昵称,但之后您尝试在SELECT子句中使用原始名称。
  3. 试试这个:

    SELECT s.rma_id, c.full_name, e.shipping_carrier
    
    FROM customers c
    JOIN early_ships e
        ON c.id = e.customer_id
    JOIN samples s
        ON e.sample_id = s.id
    

    (为了便于阅读而添加了空格)