繁体   English   中英

MYSQL从2个表中进行选择,这些表的ID仅在其中一个表中

[英]MYSQL Select from 2 tables with an id that is in just in one of them

这是我的问题:我有3个表:

USERS

USERS_INFO

COMPANIES_INFO

USERS表具有字段ID 。表USERS_INFOCOMPANIES_INFO具有由ID为的外键链接的ID_USER字段。

问题是,如何选择仅在其中一个中存在的行?

一个例子:

USERS
+----+
| id |
+----+
| 1  | 
+----+
| 2  | 
+----+

USERS_INFO
+---------+---------+
| id_user | name    |
+---------+---------+
| 1       | Jhonny  |
+---------+---------+


COMPANIES_INFO
+---------+---------+
| id_user | company |
+---------+---------+
| 2       | Apple   |
+---------+---------+

我想要的是这样的:

SELECT * FROM users_info, companies_info WHERE id_user=2

并得到这个:

id_user = 2
company = Apple

相反,如果我做到了

SELECT * FROM users_info, companies_info WHERE id_user=1

我会得到:

id_user =1
name = Jhonny

例如,我想通过检查两个表USERS_INFOCOMPANIES_INFO来选择用户2,因为我们不知道哪个表包含该表……有什么帮助吗?

尝试这个:

     SELECT U.id
     FROM users U
     LEFT JOIN users_info UI ON U.id = CI.id_user
     LEFT JOIN companies_info CI ON U.id = CI.id_user
     WHERE UI.id IS NOT NULL AND CI.id IS NOT NULL

您可以尝试以下方法:

SET @user = 1;
SELECT id_user, name FROM USERS_INFO WHERE id_user = @user
UNION
SELECT id_user, company as name FROM COMPANIES_INFO WHERE id_user = @user;

暂无
暂无

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

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