簡體   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