有3个这样的表:
mysql> describe detoc;
+-----------+--------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+------------+----------------+
| registro | int(12) | NO | PRI | NULL | auto_increment |
| ordcomp | int(12) | NO | MUL | 0 | |
| requis | int(12) | YES | MUL | 0 | |
| requisnum | int(12) | YES | | 0 | |
| material | char(6) | YES | MUL | | |
| cantidad | double(18,7) | YES | | 0.0000000 | |
| unidad | char(7) | YES | | | |
| presest | double(18,7) | YES | | 0.0000000 | |
| unidadpre | char(7) | YES | | | |
| surtido | double(18,7) | YES | | 0.0000000 | |
| cerrada | tinyint(1) | YES | | 0 | |
| costo | double(18,7) | YES | | 0.0000000 | |
| impuesto | double(18,7) | YES | | 0.0000000 | |
| fechalta | date | YES | | 0000-00-00 | |
| usuarmod | char(6) | YES | | | |
| fechamod | date | YES | | 0000-00-00 | |
+-----------+--------------+------+-----+------------+----------------+
16 rows in set (0.02 sec)
mysql> describe ordenescompra;
+------------+------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+------------+----------------+
| registro | int(12) | NO | PRI | NULL | auto_increment |
| clave | int(12) | NO | MUL | 0 | |
| area | char(6) | NO | MUL | | |
| usuariocre | char(6) | NO | MUL | | |
| cveprov | char(6) | YES | | | |
| fechacomp | char(10) | YES | | | |
| emailconf | tinyint(1) | YES | | 0 | |
| confprov | tinyint(1) | YES | | 0 | |
| cerrada | tinyint(1) | YES | | 0 | |
| fechalta | date | YES | | 0000-00-00 | |
| usuarmod | char(6) | YES | | | |
| fechamod | date | YES | | 0000-00-00 | |
+------------+------------+------+-----+------------+----------------+
12 rows in set (0.02 sec)
mysql> describe materiales;
+-----------+--------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+------------+----------------+
| registro | int(12) | NO | PRI | NULL | auto_increment |
| clave | char(6) | NO | UNI | | |
| clave2 | char(20) | YES | MUL | | |
| descr | char(30) | YES | | | |
| descr2 | char(250) | YES | | | |
| unidad | char(7) | YES | | | |
| presest | double(18,7) | YES | | 0.0000000 | |
| unidadpre | char(7) | YES | | | |
| codbar | char(30) | YES | | | |
| impuesto | double(18,7) | YES | | 0.0000000 | |
| mantpend | tinyint(1) | YES | | 0 | |
| grupplat | char(6) | YES | MUL | | |
| fechalta | date | YES | | 0000-00-00 | |
| usuarmod | char(6) | YES | | | |
| fechamod | date | YES | | 0000-00-00 | |
+-----------+--------------+------+-----+------------+----------------+
我需要显示数据,但不返回任何内容,语法为:
SELECT * FROM DETOC INNER JOIN MATERIALES
ON DETOC.MATERIAL = MATERIALES.CLAVE
INNER JOIN ORDENESCOMPRA
ON DETOC.ORDCOMP = ORDENESCOMPRA.CLAVE
WHERE MATERIALES.CLAVE>=' '
AND MATERIALES.CLAVE<='ZZZZZZ'
AND MATERIALES.GRUPPLAT>=' '
AND MATERIALES.GRUPPLAT<='ZZZZZZ'
AND ORDENESCOMPRA.CLAVE>=' '
AND ORDENESCOMPRA.CLAVE<='999999999999'
ORDER BY ;
我也尝试了这种语法,但我有一个错误要显示,因为它们的列数不同......
(SELECT * FROM DETOC
INNER JOIN ORDENESCOMPRA
ON DETOC.ORDCOMP = ORDENESCOMPRA.CLAVE
WHERE ORDENESCOMPRA.CLAVE>="8780"
AND ORDENESCOMPRA.CLAVE<="8790"
ORDER BY CLAVE)
UNION
(SELECT * FROM DETOC
INNER JOIN MATERIALES
ON DETOC.MATERIAL = MATERIALES.CLAVE
WHERE MATERIALES.CLAVE>=""
AND MATERIALES.CLAVE<=""
AND MATERIALES.GRUPPLAT>=" "
AND MATERIALES.GRUPPLAT<=" ")
任何人都可以帮助我???
答案 0 :(得分:1)
在将UPPER
和MATERIALES.CLAVE
与其上限进行比较时,请尝试使用MATERIALES.GRUPPLAT
功能,如下面的查询所示:
SELECT
*
FROM
DETOC
INNER JOIN MATERIALES
ON DETOC.MATERIAL = MATERIALES.CLAVE
INNER JOIN ORDENESCOMPRA
ON DETOC.ORDCOMP = ORDENESCOMPRA.CLAVE
WHERE
MATERIALES.CLAVE >= ' '
AND UPPER(MATERIALES.CLAVE) <= 'ZZZZZZ'
AND MATERIALES.GRUPPLAT >= ' '
AND UPPER(MATERIALES.GRUPPLAT) <= 'ZZZZZZ'
AND ORDENESCOMPRA.CLAVE >= ' '
AND ORDENESCOMPRA.CLAVE <= '999999999999';
我不确定这是否会解决您的问题,但我确定在MATERIALES.CLAVE
中会有{value AABBcc
,但查询会排除来自结果集。
希望它有所帮助。