我认为这不是一个难题,但我找不到任何解决方法。
1'DRIVER'一次驱动1'TRUCK', 1'TRUCK'一次携带多个'BOXS'。
我有两个问题:
简单的一个:
Select a.*,
(Select IDTRUCK From TRUCKS WHERE ACTUEL= true AND IDDRIVER=IDDRIVER) as IDTRUCK
From DRIVERS a;
结果:
IDDRIVER | NAMEDRIVER | IDTRUCK
-------------------------------
1 | Michel | 45
2 | Jean | 35
和复杂的(来自here):
SET @sql = NULL;
SELECT GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(`IDBOX` = ', `IDBOX`, ',WEIGHTBOX,NULL)) AS WEIGHTBOX', `IDBOX`)
) INTO @sql
FROM BOXS;
SET @sql = CONCAT('SELECT IDTRUCK, ', @sql, '
FROM BOXS WHERE IDTRUCK =
(Select IDTRUCK From TRUCKS WHERE ACTUEL= true AND IDDRIVER=IDDRIVER)
GROUP BY IDTRUCK');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
结果:
IDTRUCK | WEIGHTBOX1 | WEIGHTBOX2
-------------------------------
45 | 75.2 | 46.3
35 | 154 | 69.4
我希望将这两个结果放在一个表中:
IDDRIVER | NAMEDRIVER | IDTRUCK | WEIGHTBOX1 | WEIGHTBOX2
---------------------------------------------------------
1 | Michel | 45 | 75.2 | 46.3
2 | Jean | 35 | 154 | 69.4
但我不知道如何将这两个问题放在一起。
我认为JOIN可以完成这项工作,但我无法成功。
PS:对不起我非常基本的英语。
编辑:根据Shadow,可以使用左连接(here)来执行此操作但我不知道在哪里可以将查询的不同部分放在一起来制作它们工作。这不是理解问题,而是语法问题。
答案 0 :(得分:0)
您可以在动态查询中包含其他表格。像这样:
document.onkeypress = function(evt) {
var charCode = evt.keyCode || evt.which,
char = String.fromCharCode(charCode),
passList = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÅÉ_éabcdefghijklmnopqrstuvwxyzäö倣";
!!~passList.indexOf(char) && do something;
};