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