我有我的MySQL數據庫的一些表:MySQL查詢 - 從兩個記錄中選擇設置
實驗室檢查(dw_test):
testID int
testText varchar
testGroup int
testOrder int
testActive int
testCalc int
...
測試組(dw_group):
groupID int
groupText varchar
groupOrder int
...
提交給實驗室的測試列表(dw_sub):
subID int
subTest int
subForm int
subSpec int
...
如何選擇測試:要麼出現在dw_sub中,要麼出現testCalc爲1的測試?無論哪種情況,testActive必須爲1,subSpec = 100。
該查詢選擇我想要的東西,但留下的是有testCalc = 1的所有測試:
SELECT dw_test.testID, dw_group.groupText, dw_test.testText
FROM (dw_test LEFT JOIN dw_group ON dw_test.testGroup = dw_group.groupID) RIGHT JOIN dw_sub ON dw_test.testID = dw_sub.subTest
WHERE ((dw_test.testActive=1) AND (dw_sub.subSpec=100) AND (dw_test.testSite=4))
GROUP BY dw_group.groupID, dw_test.testID
ORDER BY dw_group.groupOrder, dw_test.testOrder
所以我已經更新到包括另一個記錄,但引起我的悲傷:
SELECT dw_group.groupText, dw_test.testID, dw_test.testText, dw_test.testCalc
FROM (SELECT * FROM dw_test WHERE testCalc = 1) dw_group RIGHT JOIN (dw_test RIGHT JOIN dw_sub ON dw_test.testID = dw_sub.subTest) ON dw_group.groupID = dw_test.testGroup
WHERE testActive=1 AND subSpec=100 AND testSite=4
GROUP BY testID
ORDER BY groupOrder, testOrder
我得到:未知列「dw_group.groupText」在「字段列表」
執行一個查詢,該查詢與'dw_sub'(另一個測試'testCalc = 1'的查詢)並將它們與'UNION'結合起來。 – Barmar
「在任何一種情況下,testActive必須爲1,subSpec = 100」如果只有第二個條件在下列情況下才會出現「dw_sub或testCalc爲1」的情況,這怎麼可能? – DarkKnight