[英]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_INFO
和COMPANIES_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_INFO
和COMPANIES_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.