[英]select multiple rows from tow tables mysql
I'm trying to select mltiple rows from tow table : first table is donor 我正在尝试从丝束表中选择多个行:第一个表是施主
CREATE TABLE donor(
donor_number INT NOT NULL AUTO_INCREMENT,
d_name VARCHAR(30) NOT NULL,
mobile_number INT NOT NULL,
blood_group VARCHAR(20) NULL,
dob DATE NOT NULL,
gender ENUM('male','female') NOT NULL,
govid INT(10) NOT NULL,
PRIMARY KEY (donor_number )
);
second table is blood_donation 第二张表是blood_donation
CREATE TABLE blood_donation(
donor_number INT NOT NULL,
date_of_donate DATE NOT NULL,
blood_group VARCHAR(20) NULL,
serial_number INT(10) NOT NULL,
blood_component ENUM('wb','prcb') NOT NULL,
PRIMARY KEY (donor_number , date_of_donate ),
FOREIGN KEY (donor_number) REFERENCES donor(donor_number)
);
with this select statement: 使用以下选择语句:
SELECT
serial_number,
blood_group
FROM blood_donation
WHERE date_of_donate = '2012-07-18'
UNION ALL
SELECT
blood_group
FROM donor
WHERE donor.donor_number=blood_donation.donor_number;
but, I get error 但是,我得到了错误
SQL state 42S22: Unknown column 'blood_donation.donor_number' in 'where clause'
any idea????
A UNION is used to combine more than one result set into a single result set - and each result set must have the same set of columns. UNION用于将多个结果集组合为一个结果集-每个结果集必须具有相同的列集。
What you need is a JOIN , which is how you link multiple tables together on foreign keys etc and would be something like this: 您需要的是JOIN ,这是您如何在外键等上将多个表链接在一起的方式,如下所示:
SELECT
serial_number,
blood_group
FROM blood_donation
INNER JOIN donor ON donor.donor_number=blood_donation.donor_number
WHERE date_of_donate = '2012-07-18'
Actually you should not be using UNION but JOIN :) 实际上,您不应该使用UNION而是JOIN :)
you query will look like this 您查询将如下所示
SELECT
blood_donation.serial_number,
donor.blood_group
FROM
blood_donation ,
donor
WHERE donor.donor_number = blood_donation.donor_number AND date_of_donate = '2012-07-18' ;
SELECT
dd.serial_number,
dd.blood_group
FROM blood_donation dd
inner join
donor d
on d.donor_number=dd.donor_number
WHERE dd.date_of_donate = '2012-07-18';
UNION
is not what exactly you need, Read some more about JOINS . UNION
并不是您真正需要的,请阅读有关JOINS的更多信息。 Also please change the selection alias of columns as per the need. 另外,请根据需要更改列的选择别名。 And you can use Left Join
instead of Inner Join
if you don't want a mandatory join condition on tables. 如果您不希望在表上使用强制Inner Join
则可以使用Left Join
代替Inner Join
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.