我在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;
所以它返回这个:
而且我需要编辑在csv中导出的“正常价格”和“折价” ...或直接在MySql上导出,但是不能,因为我没有唯一的列“当前选择不包含唯一的列。网格编辑,复选框,编辑,复制和删除功能不可用。”
谁能帮助我做到这一点?
最好的祝福。
Fichier看起来像这样:
最佳答案
我对此不是100%的确定,但我认为,如果您根据一个fichier值进行分组,则可以编辑价格。
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
如果您现在将其他信息添加到您的选择中,则会显示您由于加入而无法编辑(不是因为缺少密钥,这是我们的第一个问题)
关于php - 修改多联表SQL mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36412440/