修改多个连接表sql mysql

时间:2016-04-04 20:38:04

标签: php mysql sql csv join

我在5个表上进行了这个连接,它看起来像这样:

   SELECT Marque.nom AS "Brand"
        , Modele.nom AS "Model"
        , Annee.nom "Year"
        , Motorisation.nom AS "Motor"
        , Fichier.prix_1 AS "Normal price"
        , Fichier.prix_2 AS "Discounted price"
   FROM   Marque
          JOIN Modele ON Modele.idMarque = Marque.id
          JOIN Annee ON Annee.idModele = Modele.id
          JOIN Motorisation ON Motorisation.idAnnee = Annee.id
          JOIN Fichier ON Fichier.idMotorisation = Motorisation.id;

所以它返回:

enter image description here

我需要编辑在csv中导出的正常价格和折扣价格...或者直接在MySql上编辑,但我不能,因为我没有唯一的列“当前选择不包含唯一列。网格编辑,复选框,编辑,复制和删除功能不可用。“

任何人都可以帮我解决这个问题吗?

最好的问候。

Fichier看起来像这样: enter image description here

1 个答案:

答案 0 :(得分:1)

我不是百分之百确定这一点,但我认为如果你通过其中一个更高的价值进行分组,你可以编辑价格。

SELECT Marque.nom AS "Brand", 
       Modele.nom AS "Model", 
       Annee.nom "Year", 
       Motorisation.nom AS "Motor",
       Fichier.prix_1 AS "Normal price", 
       Fichier.prix_2 AS "Discounted price"
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

你只能编辑我想的fichier,如果不是你必须在excel中这样做我害怕

好的,我有一个解决方法可以帮助你,我想:

首先执行此查询

SELECT CONCAT_WS(',',Fichier.idMotorisation) AS ID_ARRAY
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

这将为您提供一个长字符串,因为所有id都以逗号连接。然后,您将此字符串插入以下查询中:

SELECT *
FROM Fichier
WHERE Fichier.idMotorisation IN (*Insert string here, not as string just as comma seperated values between the brackets*)

应该为您提供可以处理的结果。

编辑:

这是您在一个可编辑查询中获得的最佳效果:

SELECT Fichier.*
FROM   Marque
JOIN Modele ON Modele.idMarque = Marque.id
JOIN Annee ON Annee.idModele = Modele.id
JOIN Motorisation ON Motorisation.idAnnee = Annee.id
JOIN Fichier ON Fichier.idMotorisation = Motorisation.id
GROUP BY Fichier.idMotorisation

如果您现在将其他信息添加到您的选择中,它会说您因为加入而无法编辑(不是因为缺少密钥,这是我们的第一个问题)