如何从第一个表中选择基于第三个表的所有内容

时间:2014-05-12 03:27:34

标签: mysql sql

好吧我们有以下模型来解释(我没有足够的信誉来发布图片),我需要查询表 ModelosEmUso 发送用户的 Carros ID ,但我需要 ModeloPeca.modelo ModeloPeca.quantidade 而不是来自 ModelosEmUso

的FK

我尝试了几个查询但没有成功,我考虑加入,但我无法弄清楚它是如何做到的。

------------
|Carro     |
------------
|idCarro   |
|nome      |  
|catergoria|
-------------
    |
    | 
    |
    |
    |
   /|\
--------------------           ----------------
|ModelosEmUso      |           |ModeloPeca    |
--------------------           ----------------
|idModelosEmUso    |           |idPeca        |
|quantidadeRestante|__________<|modelo        |
|modeloPeca_idPeca |           |quantidade    |  
|carros_idCarros   |           |valor         |
--------------------           |/others coluns|
                               ----------------

PS:糟糕的抽奖我知道,关系是OneToMany非识别。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不完全确定我理解你的问题,但听起来你只想做一个从ModelosEmUso到ModeloPeca的内部联接。您不需要加入Carro,因为您在ModelosEmUso上有carros_idCarros来进行过滤。也许是这样的:

SELECT
     MP.modelo
    ,MP.quantidade
FROM ModelosEmUso ME
    INNER JOIN ModeloPeca MP
        ON ME.modeloPeca_idPeca = MP.idPeca
WHERE ME.carros_idCarros = @USER_PARAM

答案 1 :(得分:0)

尝试

select ModeloPeca.modelo, ModeloPeca.quantidade from ModeloPeca left join ModelosEmUso on ModeloPeca.idPeca = ModelosEmUso.modeloPeca_idPeca left join Carro On Carro.idCarro = <your user id>