簡體   English   中英

MySQL內部聯接使用

[英]MySQL INNER JOIN USE

我有兩個表:

+-----------------------+
| Tables_in_my_database |
+-----------------------+
| orders                | 
| orderTaken            | 
+-----------------------+

在訂單中,有一些屬性,例如orderIdorderName
在orderTaken中,有一些屬性,如userIdorderIdorderStatus

基本上,我項目的機制運行如下:
具有唯一userId的用戶將能夠從網頁上獲得訂單,其中每個訂單也具有自己的唯一orderId 采取之后, orderTaken表將記錄userId, orderId並初始設置orderStatus = 1

現在,我想選擇一個用戶在orderStatus = 1采取的訂單,但是我也需要顯示訂單表中的orderName。 我已經學會了內部聯接並編寫了這樣的查詢:

SELECT * FROM orders
WHERE orders.orderId IN
(SELECT orderId FROM orderTaken
WHERE orderTaken.userId = '8' AND orderTaken.orderStatus = '1')
INNER JOIN orderTaken ON orders.orderId = orderTaken.orderId

但是,MySQL一直抱怨語法錯誤。 我想我不能以這種方式使用內部聯接? 有人可以糾正我嗎? 謝謝!

SELECT * FROM orders
INNER JOIN orderTaken ON orders.orderId = orderTaken.orderId
WHERE orderTaken.userId = '8' AND orderTaken.orderStatus = '1'

您已經太復雜了。 這將起作用。

自從我認為正確之后,我就在userId保留了引號,但是如果它們的數據類型為INT ,則應將其刪除。

如果您想閱讀JOIN請參閱以下鏈接

這樣嘗試

SELECT * 
   FROM (orders INNER JOIN ordersTaken ON orders.orderId = orderTaken.orderId) 
   WHERE orderId IN 
    (SELECT orderId 
     FROM orderTaken 
     WHERE orderTaken.userId = '8' AND orderTaken.orderStatus = '1')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM