繁体   English   中英

来自不同表的 MySQL 查询

[英]MySQL query from different tables

我有两个 MySQL 表,vdubl:

+-------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------+------+-----+---------+-------+ | PRIM | int(10) unsigned | NO | | 0 | | | NUM | int(11) | NO | | NULL | | | ADR | varchar(200) | YES | | NULL | | | NM | varchar(50) | YES | | NULL | | | ETJ | varchar(50) | YES | | NULL | | | DC | int(11) | YES | | NULL | | | DV | datetime | YES | | NULL | | | INUM | varchar(50) | YES | | NULL | | | BL | double(12,2) | YES | | NULL | | | PL | float(5,2) | YES | | NULL | | | SV | varchar(200) | YES | | NULL | | | REGN | varchar(50) | YES | | NULL | | | REGD | datetime | YES | | NULL | | | NSV | varchar(50) | YES | | NULL | | | OSP | varchar(200) | YES | | NULL | | | OSZ | varchar(200) | YES | | NULL | | | UL | varchar(100) | YES | | NULL | | | VP | varchar(50) | YES | | NULL | | | DZ | varchar(200) | YES | | NULL | | | COMM | varchar(200) | YES | | NULL | | | ROOMS | smallint(6) | YES | | NULL | | | JPL | float(5,2) | YES | | NULL | | | MUN | tinyint(1) | NO | | 0 | | +-------+------------------+------+-----+---------+-------+

和合同:

+---------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+----------------+ | pk | int(11) | NO | PRI | NULL | auto_increment | | sheet | int(2) | YES | | NULL | | | row | int(2) | YES | | NULL | | | cnum | varchar(200) | YES | | NULL | | | cform | varchar(100) | YES | | NULL | | | condt | datetime | YES | | NULL | | | fam | mediumtext | YES | | NULL | | | famcom | int(10) | YES | | NULL | | | osz | varchar(200) | YES | | NULL | | | address | varchar(200) | YES | MUL | NULL | | | room | smallint(6) | YES | | NULL | | | s | varchar(100) | YES | | NULL | | | js | varchar(100) | YES | | NULL | | | note | varchar(200) | YES | | NULL | | | phone | varchar(100) | YES | | NULL | | | trmd | varchar(100) | YES | | NULL | | +---------+--------------+------+-----+---------+----------------+

我需要从表“vdubl”中选择所有列,并按条件从表“contracts”中选择一列(我需要“contracts”表的“cform”列的值,其中列“address”LIKE 表vdubl的“ADR”列)。 “地址”的值不等于“ADR”,但“ADR”始终包含“地址”的大部分内容。

我试过这样的事情(子查询):

"Select ADR as 'Address',DV as 'Date',NUM as 'Number',(select cform from contracts where address like '%vdubl.ADR') as 'Form' from vdubl"

但它总是为所有行返回空列“表单”......我该如何做我需要的?

如果有问题,我在C#MySQL.Data.MySQLClient尝试了这个。 我正在使用的 MySQL 版本 - Ver 5.0.51a for Win32 on ia32(源代码分发)。 对不起,我的英语不是我的母语。

我认为您正试图通过“地址”值连接两个表。

SELECT t1.ADR AS 'Address',
t1.DV AS 'Date',
t1.NUM AS 'Number',
t2.cform
FROM vdubl AS t1
INNER JOIN contracts AS t2
ON t1.ADR LIKE CONCAT('%', t2.address, '%')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM