沒有與下面的表格數據庫:如何做到連續選擇在同一查詢
table_1: id, atr1
table_2: id, atr2
table_3: id, table_1_id(Foreign Key), table_2_id(Foreign Key), atr3
我想說明的操作有點複雜,我可以解釋它從做一些額外的編程擱置SQL查詢。
該操作的第一部分將獲得滿足一些條件的table_3中table_2的所有標識符。
SELECT table_3.table_2_id
FROM table_3
WHERE
table_3.atr3 = 'value1' AND
table_3.table_1_id = 'value2'
下一部分將採取我剛剛獲得的每個值,然後在以下查詢中使用它們。我會在循環中做到這一點。
SELECT table_3.id, table_3.atr3, table_1.atr1, table_2.atr2
FROM table_3
JOIN table_1 ON table_3.table_1_id = table_1.id
JOIN table_2 ON table_3.table_2_id = table_2.id
WHERE
table_3.table_2_id = 'current_value_i_am_iterating_over' AND
(table_3.table_1_id = 'value4' OR
table_3.table_1_id = 'value5')
查詢之後,我會在包含所有我在循環的連續迭代獲得的行的陣列串聯所獲得的行。
我想知道的是,如果有一種方法可以避免第二個循環,理想情況下只在一個SQL查詢中進行整個操作。
你能提供sqlfiddle嗎? –