mySQL - 基于其他内部联接的内部联接

时间:2014-05-18 15:03:49

标签: mysql select join

所以我有3张桌子:

  1. "销售" (使用"条形码"列等),

  2. "产品" (使用"条形码"和" image_id"列等)和

  3. "图像" (使用" image_id"和" image_data"列等)。
  4. 我的输入数据是"条形码"中的12位数字。 " Sales"表。

    首先,我需要找到这个条形码对应的image_id(通过使用Products表的内连接):

    SELECT image_id 
    FROM tbl_products 
    INNER JOIN tbl_sales 
    ON tbl_products.barcode = tbl_sales.barcode
    

    现在,我需要选择" image_data"来自"图像"的列通过某种方式内联表上面的选择结果和"图像" image_id列上的表格。

    如何在1个查询中执行此操作(如果可以的话)?

2 个答案:

答案 0 :(得分:1)

这样的东西
SELECT tbl_images.image_id, tbl_images.image_data 
FROM tbl_sales 
INNER JOIN tbl_products 
ON tbl_products.barcode = tbl_sales.barcode
inner join tbl_images
ON tbl_images.image_id = tbl_products.image_id
Where tbl_sales.BarCode = '0123456789AB'

将连接链接在一起。注意,您也可以使用别名

SELECT i.image_id, i.image_data 
FROM tbl_sales s 
INNER JOIN tbl_products p 
ON p.barcode = s.barcode
inner join tbl_images i
ON i.image_id = p.image_id
Where s.BarCode = '0123456789AB'

也会起作用并且更具可读性。

答案 1 :(得分:0)

您可以在一个查询中连接多个表。当您连接2个表时,语法是相同的。您也可以混合连接类型:

示例

SELECT
    * -- Change it to the required field list!
FROM
    Table1 T1
    INNER JOIN Table2 T2
        ON T1.col1 = T2.col2
    INNER JOIN Table3 T3
        ON T2.col3 = T3.col4
    LEFT JOIN Table4 T4
        ON T1.col5 = T4.col6 AND T2.col7 = T3.col8

一些提示:始终对连接的表使用别名,并在查询中的任何位置使用任何列时使用这些别名。